# Kotlin 程序：按属性对自定义对象的`ArrayList`进行排序

> 原文： [https://www.programiz.com/kotlin-programming/examples/sort-custom-objects-property](https://www.programiz.com/kotlin-programming/examples/sort-custom-objects-property)

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

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

```kt
import java.util.*

fun main(args: Array<String>) {

    val list = ArrayList<CustomObject>()
    list.add(CustomObject("Z"))
    list.add(CustomObject("A"))
    list.add(CustomObject("B"))
    list.add(CustomObject("X"))
    list.add(CustomObject("Aa"))

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

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

public class CustomObject(val customProperty: String) {
}
```

运行该程序时，输出为：

```kt
A
Aa
B
X
Z
```

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

在`main()`方法中，我们创建了以 5 个对象初始化的自定义对象`list`的`ArrayList`。

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

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

这里是等效的 Java 代码： [Java 程序：通过属性对自定义对象的`ArrayList`进行排序](/java-programming/examples/sort-custom-objects-property "Java program to sort an ArrayList of custom objects by property")。