我有一个自定义对象列表和一个 Enum 类。我必须根据枚举属性对列表进行排序。例如:
我的列表:
val list = listOf(Item(1,Severity.CRITICAL), Item(3, Severity.LOW), Item(2, Severity.SEVERE))
Run Code Online (Sandbox Code Playgroud)
我的枚举类:
enum class Severity{
CRITICAL, SEVERE, MODERATE, LOW
}
Run Code Online (Sandbox Code Playgroud)
我的排序列表应该是:
listOf(Item(1,Severity.CRITICAL), Item(2, Severity.SEVERE), Item(3, Severity.LOW))
Run Code Online (Sandbox Code Playgroud)
排序是按照枚举类中的顺序完成的。我怎样才能做到这一点?
只需为每个枚举附加一个值即可。这样您就不必担心枚举类定义中的顺序。
enum class Severity(val value: Int) {
SEVERE(1),
CRITICAL(0),
MODERATE(2),
LOW(3)
}
Run Code Online (Sandbox Code Playgroud)
然后你可以这样对列表进行排序:
list.sortedBy { it.serverity.value }
Run Code Online (Sandbox Code Playgroud)
使用sortedBy功能。它会很容易地完成这项工作。
val ans = list.sortedBy { it.severity }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |