我有一个特定顺序的颜色枚举。我如何排序我的arrayList
颜色以匹配我的枚举中声明的顺序?
enum class ColorsEnum(val rawValue: String) {
red("Red"),
orange("Orange"),
yellow("Yellow"),
green("Green"),
blue("Blue")
}
fun orderByEnum(): String {
val selectedColors = arrayListOf("Red", "Yellow", "Orange", "Blue", "Green")
//sort selectedColors by the order in the enum
return selectedColors.joinToString(", ")
//should return "Red, Orange, Yellow, Green, Blue"
}
3条答案
按热度按时间uujelgoq1#
假设你说的是
arrayListOf("Red", "Yellow", "Orange", "Blue", "Green")
说明:
sortBy
扩展函数根据指定选择器函数返回的值的自然排序顺序就地排序列表中的元素。find { it.rawValue == colorName }
查找哪个枚举具有这个特定的rawValue
。ColorsEnum.values()::indexOf
按声明顺序返回此枚举的索引。ukdjmx9f2#
xriantvc3#
只需使用
sortBy
函数就可以非常容易地实现这一点。建议对枚举名称使用大写命名。
然后,还应使用以下内容更新
sortBy
: