在我的安卓应用程序中,我正在尝试按照1、2、3等顺序对公交路线标签进行排序。
为此,我正在使用以下代码:
为此,我正在使用以下代码:
Collections.sort(directions, Comparator { lhs, rhs ->
var obj1 = lhs.short_names.firstOrNull() ?: ""
var obj2 = rhs.short_names.firstOrNull() ?: ""
if (obj1 === obj2) {
obj1 = lhs.headsigns.firstOrNull() ?: ""
obj2 = rhs.headsigns.firstOrNull() ?: ""
if (obj1 === obj2) {
return@Comparator 0
}
obj1.compareTo(obj2)
} else {
obj1.compareTo(obj2)
}
我遇到的问题是它会排序,但会遇到以下情况:1, 2, 3, 30, 31, 4, 5。
我应该如何更改以获得正确的排序。
toInt()
的解决方案可以重写为a.sortBy { it.toInt() }
。 - hotkeyCollections.sort()
。只需调用directions.sortWith(AlphanumComparator())
即可。 - Michaelval sortedDirections = directions.sortedWith(AlphanumComparator())
。 - Michael