MST
星途 面试题库

面试题:Kotlin列表自定义排序与优化

有一个自定义的数据类Person,包含属性name(字符串类型)和age(整型)。假设有一个Person类型的列表。现在要求根据name的长度进行排序,如果name长度相同,则按照age从小到大排序。请实现这个自定义排序逻辑,并且在实现过程中考虑性能优化,尽量减少不必要的计算和内存开销。请写出完整的Kotlin代码,包括数据类定义和排序实现。
23.2万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
data class Person(val name: String, val age: Int)

fun main() {
    val personList = listOf(
        Person("Alice", 30),
        Person("Bob", 25),
        Person("Charlie", 28),
        Person("David", 22),
        Person("Eve", 27)
    )

    val sortedList = personList.sortedWith(compareBy<Person> { it.name.length }.thenBy { it.age })
    sortedList.forEach { println(it) }
}