Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

From Java To Kotlin - Your Cheat Sheet For Java To Kotlin

License

NotificationsYou must be signed in to change notification settings

amitshekhariitbhu/from-java-to-kotlin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

FromJavaToKotlin

From Java To Kotlin

From Java To Kotlin - Your Cheat Sheet For Java To Kotlin

About me

Hi, I am Amit Shekhar, Co-Founder @Outcome School • IIT 2010-14 • I have taught and mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos.

You can connect with me on:

Live session on "Android Developer Interview Preparation for Product-based Companies"

I conducted a live session on "Android Developer Interview Preparation for Product-based Companies"

Interacted with over500 Android Developers.

Guided, motivated, and inspired them to aim higher and achieve more.

Recording Link:https://drive.google.com/file/d/1VWW3l_itH6vYbNYzNer6XW5_x0jzOF4O/view?usp=sharing

Document Link:https://docs.google.com/document/d/14UdD7Gd1j3no583ALx2t2Ggt3G_CECYhenLE-m-bkzA/edit?usp=sharing

Print to Console

Java

System.out.print("Amit Shekhar");System.out.println("Amit Shekhar");

Kotlin

print("Amit Shekhar")println("Amit Shekhar")

Constants and Variables

Java

Stringname ="Amit Shekhar";finalStringname ="Amit Shekhar";

Kotlin

var name="Amit Shekhar"val name="Amit Shekhar"

Assigning the null value

Java

StringotherName;otherName =null;

Kotlin

var otherName:String?otherName=null

Verify if value is null

Java

if (text !=null) {intlength =text.length();}

Kotlin

text?.let {val length= text.length}// or simplyval length= text?.length

Verify if value is NotNull OR NotEmpty

Java

StringsampleString ="Shekhar";if (!sampleString.isEmpty()) {myTextView.setText(sampleString);}if(sampleString!=null && !sampleString.isEmpty()){myTextView.setText(sampleString); }

Kotlin

var sampleString="Shekhar"if(sampleString.isNotEmpty()){//the feature of kotlin extension function    myTextView.text=sampleString}if(!sampleString.isNullOrEmpty()){   myTextView.text=sampleString }

Concatenation of strings

Java

StringfirstName ="Amit";StringlastName ="Shekhar";Stringmessage ="My name is: " +firstName +" " +lastName;

Kotlin

var firstName="Amit"var lastName="Shekhar"var message="My name is:$firstName$lastName"

New line in string

Java

Stringtext ="First Line\n" +"Second Line\n" +"Third Line";

Kotlin

val text="""        |First Line        |Second Line        |Third Line""".trimMargin()

Substring

Java

Stringstr ="Java to Kotlin Guide";Stringsubstr ="";//print javasubstr =str.substring(0,4);System.out.println("substring = " +substr);//print kotlinsubstr =str.substring(8,14);System.out.println("substring = " +substr);

Kotlin

var str="Java to Kotlin Guide"var substr=""//print javasubstr= str.substring(0..3)//println("substring$substr")//print kotlinsubstr= str.substring(8..13)println("substring$substr")

Ternary Operations

Java

Stringtext =x >5 ?"x > 5" :"x <= 5";Stringmessage =null;log(message !=null ?message :"");

Kotlin

val text=if (x>5)"x > 5"else"x <= 5"val message:String?=nulllog(message?:"")

Bitwise Operators

Java

finalintandResult  =a &b;finalintorResult   =a |b;finalintxorResult  =a ^b;finalintrightShift =a >>2;finalintleftShift  =a <<2;finalintunsignedRightShift =a >>>2;

Kotlin

val andResult= aand bval orResult= aor bval xorResult= a xor bval rightShift= a shr2val leftShift= a shl2val unsignedRightShift= a ushr2

Check the type and casting

Java

if (objectinstanceofCar) {Carcar = (Car)object;}

Kotlin

if (objectis Car) {var car=objectas Car}// if object is nullvar car=objectas? Car //var car =objectas Car?

Check the type and casting (implicit)

Java

if (objectinstanceofCar) {Carcar = (Car)object;}

Kotlin

if (objectis Car) {var car=object// smart casting}// if object is nullif (objectis Car?) {var car=object// smart casting, car will be null}

Multiple conditions

Java

if (score >=0 &&score <=300) { }

Kotlin

if (scorein0..300) { }

Multiple Conditions (Switch case)

Java

intscore =// some score;Stringgrade;switch (score) {case10:case9:grade ="Excellent";break;case8:case7:case6:grade ="Good";break;case5:case4:grade ="OK";break;case3:case2:case1:grade ="Fail";break;default:grade ="Fail";       }

Kotlin

var score=// some scorevar grade=when (score) {9,10->"Excellent"in6..8->"Good"4,5->"OK"else->"Fail"}

For-loops

Java

for (inti =1;i <=10 ;i++) { }for (inti =1;i <10 ;i++) { }for (inti =10;i >=0 ;i--) { }for (inti =1;i <=10 ;i+=2) { }for (inti =10;i >=0 ;i-=2) { }for (Stringitem :collection) { }for (Map.Entry<String,String>entry:map.entrySet()) { }

Kotlin

for (iin1..10) { }for (iin1 until10) { }for (iin10 downTo0) { }for (iin1..10 step2) { }for (iin10 downTo0 step2) { }for (itemin collection) { }for ((key, value)in map) { }

Collections

Java

finalList<Integer>listOfNumber =Arrays.asList(1,2,3,4);finalMap<Integer,String>keyValue =newHashMap<Integer,String>();map.put(1,"Amit");map.put(2,"Anand");map.put(3,"Messi");// Java 9finalList<Integer>listOfNumber =List.of(1,2,3,4);finalMap<Integer,String>keyValue =Map.of(1,"Amit",2,"Anand",3,"Messi");

Kotlin

val listOfNumber=listOf(1,2,3,4)val keyValue=mapOf(1 to"Amit",2 to"Anand",3 to"Messi")

for each

Java

// Java 7 and belowfor (Carcar :cars) {System.out.println(car.speed);}// Java 8+cars.forEach(car ->System.out.println(car.speed));// Java 7 and belowfor (Carcar :cars) {if (car.speed >100) {System.out.println(car.speed);  }}// Java 8+cars.stream().filter(car ->car.speed >100).forEach(car ->System.out.println(car.speed));cars.parallelStream().filter(car ->car.speed >100).forEach(car ->System.out.println(car.speed));

Kotlin

cars.forEach {println(it.speed)}cars.filter { it.speed>100 }      .forEach {println(it.speed)}// kotlin 1.1+cars.stream().filter { it.speed>100 }.forEach {println(it.speed)}cars.parallelStream().filter { it.speed>100 }.forEach {println(it.speed)}

Splitting arrays

java

String[]splits ="param=car".split("=");Stringparam =splits[0];Stringvalue =splits[1];

kotlin

val (param, value)="param=car".split("=")

Defining methods

Java

voiddoSomething() {// logic here}

Kotlin

fundoSomething() {// logic here}

Default values for method parameters

Java

doublecalculateCost(intquantity,doublepricePerItem) {returnpricePerItem *quantity;}doublecalculateCost(intquantity) {// default price is 20.5return20.5 *quantity;}

Kotlin

funcalculateCost(quantity:Int,pricePerItem:Double = 20.5)= quantity* pricePerItemcalculateCost(10,25.0)// 250calculateCost(10)// 205

Variable number of arguments

Java

voiddoSomething(int...numbers) {// logic here}

Kotlin

fundoSomething(varargnumbers:Int) {// logic here}

Defining methods with return

Java

intgetScore() {// logic herereturnscore;}

Kotlin

fungetScore():Int {// logic herereturn score}// as a single-expression functionfungetScore():Int= score// even simpler (type will be determined automatically)fungetScore()= score// return-type is Int

Returning result of an operation

Java

intgetScore(intvalue) {// logic herereturn2 *value;}

Kotlin

fungetScore(value:Int):Int {// logic herereturn2* value}// as a single-expression functionfungetScore(value:Int):Int=2* value// even simpler (type will be determined automatically)fungetScore(value:Int)=2* value// return-type is int

Constructors

Java

publicclassUtils {privateUtils() {// This utility class is not publicly instantiable    }publicstaticintgetScore(intvalue) {return2 *value;    }}

Kotlin

classUtils private constructor() {companionobject {fungetScore(value:Int):Int {return2* value        }    }}// another wayobject Utils {fungetScore(value:Int):Int {return2* value    }}

Getters and Setters

Java

publicclassDeveloper {privateStringname;privateintage;publicDeveloper(Stringname,intage) {this.name =name;this.age =age;    }publicStringgetName() {returnname;    }publicvoidsetName(Stringname) {this.name =name;    }publicintgetAge() {returnage;    }publicvoidsetAge(intage) {this.age =age;    }@Overridepublicbooleanequals(Objecto) {if (this ==o)returntrue;if (o ==null ||getClass() !=o.getClass())returnfalse;Developerdeveloper = (Developer)o;if (age !=developer.age)returnfalse;returnname !=null ?name.equals(developer.name) :developer.name ==null;    }@OverridepublicinthashCode() {intresult =name !=null ?name.hashCode() :0;result =31 *result +age;returnresult;    }@OverridepublicStringtoString() {return"Developer{" +"name='" +name +'\'' +", age=" +age +'}';    }}

Kotlin

data classDeveloper(varname:String,varage:Int)

Cloning or copying

Java

publicclassDeveloperimplementsCloneable {    privateStringname;privateintage;publicDeveloper(Stringname,intage) {this.name =name;this.age =age;    }@OverrideprotectedObjectclone()throwsCloneNotSupportedException {return (Developer)super.clone();    }}// cloning or copyingDeveloperdev =newDeveloper("Messi",30);try {Developerdev2 = (Developer)dev.clone();}catch (CloneNotSupportedExceptione) {// handle exception}

Kotlin

data classDeveloper(varname:String,varage:Int)// cloning or copyingval dev=Developer("Messi",30)val dev2= dev.copy()// in case you only want to copy selected propertiesval dev2= dev.copy(age=25)

Generics

Java

// Example #1interfaceSomeInterface<T> {voiddoSomething(Tdata);}classSomeClassimplementsSomeInterface<String> {@OverridepublicvoiddoSomething(Stringdata) {// some logic    }}// Example #2interfaceSomeInterface<TextendsCollection<?>> {voiddoSomething(Tdata);}classSomeClassimplementsSomeInterface<List<String>> {@OverridepublicvoiddoSomething(List<String>data) {// some logic    }}

Kotlin

interfaceSomeInterface<T> {fundoSomething(data:T)}classSomeClass:SomeInterface<String> {overridefundoSomething(data:String) {// some logic    }}interfaceSomeInterface<T:Collection<*>> {fundoSomething(data:T)}classSomeClass:SomeInterface<List<String>> {overridefundoSomething(data:List<String>) {// some logic    }}

Extension function

Java

publicclassUtils {privateUtils() {// This utility class is not publicly instantiable    }publicstaticinttriple(intvalue) {return3 *value;    }}intresult =Utils.triple(3);

Kotlin

fun Int.triple():Int {returnthis*3}var result=3.triple()

Defining uninitialized objects

Java

Personperson;

Kotlin

internallateinitvar person:Person

enum

Java

publicenumDirection {NORTH(1),SOUTH(2),WEST(3),EAST(4);intdirection;Direction(intdirection) {this.direction =direction;        }publicintgetDirection() {returndirection;        }    }

Kotlin

enumclassDirection(valdirection:Int) {NORTH(1),SOUTH(2),WEST(3),EAST(4);}

Sorting List

Java

List<Profile>profiles =loadProfiles(context);Collections.sort(profiles,newComparator<Profile>() {@Overridepublicintcompare(Profileprofile1,Profileprofile2) {if (profile1.getAge() >profile2.getAge())return1;if (profile1.getAge() <profile2.getAge())return -1;return0;    }});

Kotlin

val profile= loadProfiles(context)profile.sortedWith(Comparator({ profile1, profile2->if (profile1.age> profile2.age)return@Comparator1if (profile1.age< profile2.age)return@Comparator-1return@Comparator0}))

Anonymous Class

Java

AsyncTask<Void,Void,Profile>task =newAsyncTask<Void,Void,Profile>() {@OverrideprotectedProfiledoInBackground(Void...voids) {// fetch profile from API or DBreturnnull;    }@OverrideprotectedvoidonPreExecute() {super.onPreExecute();// do something    }};

Kotlin

val task=object:AsyncTask<Void,Void,Profile>() {overridefundoInBackground(varargvoids:Void):Profile? {// fetch profile from API or DBreturnnull    }overridefunonPreExecute() {super.onPreExecute()// do something    }}

Initialization block

Java

publicclassUser {    {//Initialization blockSystem.out.println("Init block");    }}

Kotlin

classUser {init {// Initialization blockprintln("Init block")        }    }

Important things to know in Kotlin

JoinOutcome School and get high paying tech job:Outcome School

Found this project useful ❤️

  • Support by clicking the ⭐ button on the upper right of this page. ✌️

License

   Copyright (C) 2024 Amit Shekhar   Licensed under the Apache License, Version 2.0 (the "License");   you may not use this file except in compliance with the License.   You may obtain a copy of the License at       http://www.apache.org/licenses/LICENSE-2.0   Unless required by applicable law or agreed to in writing, software   distributed under the License is distributed on an "AS IS" BASIS,   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   See the License for the specific language governing permissions and   limitations under the License.

Contributing to From Java To Kotlin

Just make a pull request. You are in!

About

From Java To Kotlin - Your Cheat Sheet For Java To Kotlin

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors37


[8]ページ先頭

©2009-2025 Movatter.jp