How to sort a list of objects and keep null objects at the end
We have already seen how to sort a list based on a specified parameter using a comparator. However, so far, we have worked with lists having non-null values. In this recipe, we will see how to sort a list of objects, which have the null property (on which we are sorting). So let's get started.
Getting ready
I'll be using IntelliJ IDEA for writing and running Kotlin code; you are free to use any IDE that can do the same task.
How to do it…
Now, let's follow these steps to sort a list, while keeping null objects at the end:
- Let's create a
Person
class having an age property that can be null:
class Person(var age:Int?)
- Now, let's create a list of
Person
objects:
val listOfPersons=listOf(Person(10), Person(20), Person(2), Person(null))
- Finally, we want to sort them in ascending order, while keeping the null items at the end:
val sortedList=listOfPersons.sortedWith(compareBy(nullsLast<Int>(),{it.age})) sortedList.forEach { print(...