原文: https://www.programiz.com/kotlin-programming/examples/sort-custom-objects-property

在此程序中,您将学习按照 Kotlin 中给定属性对自定义对象的ArrayList进行排序。

示例:按属性对自定义对象的ArrayList进行排序

  1. import java.util.*
  2. fun main(args: Array<String>) {
  3. val list = ArrayList<CustomObject>()
  4. list.add(CustomObject("Z"))
  5. list.add(CustomObject("A"))
  6. list.add(CustomObject("B"))
  7. list.add(CustomObject("X"))
  8. list.add(CustomObject("Aa"))
  9. var sortedList = list.sortedWith(compareBy({ it.customProperty }))
  10. for (obj in sortedList) {
  11. println(obj.customProperty)
  12. }
  13. }
  14. public class CustomObject(val customProperty: String) {
  15. }

运行该程序时,输出为:

  1. A
  2. Aa
  3. B
  4. X
  5. Z

在上面的程序中,我们定义了一个CustomObject类,它带有String属性,即customProperty

main()方法中,我们创建了以 5 个对象初始化的自定义对象listArrayList

为了使用属性对列表进行排序,我们使用listsortedWith()方法。sortedWith()方法采用比较器compareBy,该比较器比较每个对象的customProperty并将其排序。

然后将已排序的列表存储在变量sortedList中。

这里是等效的 Java 代码: Java 程序:通过属性对自定义对象的ArrayList进行排序