- Notifications
You must be signed in to change notification settings - Fork784
From Java To Kotlin - Your Cheat Sheet For Java To Kotlin
License
amitshekhariitbhu/from-java-to-kotlin
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
From Java To Kotlin - Your Cheat Sheet For Java To Kotlin
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:
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
Java
System.out.print("Amit Shekhar");System.out.println("Amit Shekhar");
Kotlin
print("Amit Shekhar")println("Amit Shekhar")
Java
Stringname ="Amit Shekhar";finalStringname ="Amit Shekhar";
Kotlin
var name="Amit Shekhar"val name="Amit Shekhar"
Java
StringotherName;otherName =null;
Kotlin
var otherName:String?otherName=null
Java
if (text !=null) {intlength =text.length();}
Kotlin
text?.let {val length= text.length}// or simplyval length= text?.length
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 }
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"
Java
Stringtext ="First Line\n" +"Second Line\n" +"Third Line";
Kotlin
val text=""" |First Line |Second Line |Third Line""".trimMargin()
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")
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?:"")
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
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?
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}
Java
if (score >=0 &&score <=300) { }
Kotlin
if (scorein0..300) { }
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"}
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) { }
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")
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)}java
String[]splits ="param=car".split("=");Stringparam =splits[0];Stringvalue =splits[1];
kotlin
val (param, value)="param=car".split("=")
Java
voiddoSomething() {// logic here}
Kotlin
fundoSomething() {// logic here}
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
Java
voiddoSomething(int...numbers) {// logic here}
Kotlin
fundoSomething(varargnumbers:Int) {// logic here}
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
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
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 }}
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)
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)
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 }}
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()
Java
Personperson;
Kotlin
internallateinitvar person:Person
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);}
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}))
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 }}
Java
publicclassUser { {//Initialization blockSystem.out.println("Init block"); }}
Kotlin
classUser {init {// Initialization blockprintln("Init block") } }
- Mastering Kotlin Coroutines - Mastering Kotlin Coroutines
- Dispatchers in Kotlin Coroutines - Dispatchers in Kotlin Coroutines
- coroutineScope vs supervisorScope - coroutineScope vs supervisorScope
- CoroutineContext in Kotlin - CoroutineContext in Kotlin
- What is Flow API in Kotlin? - What is Flow API in Kotlin?
- Long-running tasks in parallel with Kotlin Flow - Long-running tasks in parallel with Kotlin Flow
- Retry Operator in Kotlin Flow - Retry Operator in Kotlin Flow
- Callback to Coroutines in Kotlin - Callback to Coroutines in Kotlin
- Retrofit with Kotlin Flow - Retrofit with Kotlin Flow
- Room Database with Kotlin Flow - Room Database with Kotlin Flow
- Remove duplicates from an array - Remove duplicates from an array in Kotlin
- JvmStatic Annotation in Kotlin - JvmStatic Annotation in Kotlin
- JvmOverloads Annotation in Kotlin - JvmOverloads Annotation in Kotlin
- JvmField Annotation in Kotlin - JvmField Annotation in Kotlin
- inline function in Kotlin - inline function in Kotlin
- noinline in Kotlin - noinline in Kotlin
- crossinline in Kotlin - crossinline in Kotlin
- lateinit vs lazy in Kotlin - lateinit vs lazy in Kotlin
- init block in Kotlin - init block in Kotlin
- Retrofit with Kotlin Coroutines - Retrofit with Kotlin Coroutines
- Advantage of using const in Kotlin - Advantage of using const in Kotlin
- AssociateBy - List to Map in Kotlin - Kotlin Collection Functions - associateBy that converts a list into a map
- partition - filtering function in Kotlin - partition - filtering function in Kotlin
- Infix notation in Kotlin - Infix notation in Kotlin
- Open keyword in Kotlin - Open keyword in Kotlin
- Companion object in Kotlin - Companion object in Kotlin
- Extension function in Kotlin - Extension function in Kotlin
- data class in Kotlin - data class in Kotlin
- How does the Kotlin Multiplatform work? - How does the Kotlin Multiplatform work?
JoinOutcome School and get high paying tech job:Outcome School
- Support by clicking the ⭐ button on the upper right of this page. ✌️
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.Just make a pull request. You are in!
About
From Java To Kotlin - Your Cheat Sheet For Java To Kotlin
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
