Kotlin - Sort ArrayList of Custom Objects By Property

This Kotlin example shows how to sort an ArrayList of a custom object by their given property in Kotlin.

Kotlin - Sort ArrayList of Custom Objects By Property

In the below program, we created a User class with firstName and lastName properties. We sort list of user objects with user's firstName.
package net.javaguides.kotlin.examples

import java.util.Arrays

fun main(args: Array < String > ) {
    val list = ArrayList < User > ()
    list.add(User("Tony", "Stark"))
    list.add(User("Tom", "Cruise"))
    list.add(User("John", "Cena"))
    list.add(User("Ramesh", "Fadatare"))

    var sortedList = list.sortedWith(compareBy({
        it.firstName
    }))

    for (obj in sortedList) {
        println(obj.firstName)
    }
}

class User {
    // Properties or Member Variables
    var firstName: String;
    var lastName: String;

    // Secondary Constructor
    constructor(firstName: String, lastName: String) {
        this.firstName = firstName
        this.lastName = lastName
    }
}
Output:
John
Ramesh
Tom
Tony
In the above example, to sort the list with the property, we used list's sortedWith() method. The sortedWith() method takes a comparator compareBy that compares firstName of each object and sorts it.
The sorted list is then stored in the variable sortedList.

Comments