Most often than not, when dealing with collections there’s a need for filtering them before displaying.
Kotlin lets you call multiple methods on the same object.
Singleton pattern involves a single class which is responsible to create an object while making sure that only one single instance gets created.
Multiline String Literals in Java have always been clumsy and full of + operators for line-breaks.
Using named arguments you can make more expressive calls.
Group object initialisation in Kotlin promote cleaner and easier to read code.
A destructuring declaration creates multiple variables at once.
Kotlin supports local functions, i.e. it allows you to put a function inside a function.
Algorithms that would normally be written using loops are instead written as recursive functions with no risk of stack overflows.
flatten method in Kotlin, you can turn a list of lists and array of arrays into a single list of all eleme...
Kotlin’s type system is aimed to eliminate
NullPointerException's from your code.
Vetoable are delegate properties that allow you to update a property value if a certain condition is matched.
Kotlin provides a simple and intuitive way to create ranges.
Kotlin functions are first-class citizens, which means they can be stored in variables and data structures, passed as arguments to and returned from other...
Non-null type properties must be initialised in the constructor but that’s not always very convenient.
Concatenating strings with a + is a waste of time when you can use string templates.
In most programming languages you have to derive a new class. In Kotlin you can extend a class with new functionality.
Removing duplicates from arrays usually involves looping through an entire array and creating a new array without duplicates.
No need for explicitly defining generic types and no repetitive
put or assignment to define maps.
When a function returns a single expression, the curly braces can be omitted and the body is specified after a = symbol.