我有一个包含键和值的映射.我想将其传输到一个列表,并首先按值(整数)排序,然后按键(字符串)排序.这是,它按值排序,但如果值中有关联,我想通过按字母顺序排序来"解开"它.有没有什么Kotlin、Java函数可以做到这一点? 提前谢谢你
我有一个包含键和值的映射.我想将其传输到一个列表,并首先按值(整数)排序,然后按键(字符串)排序.这是,它按值排序,但如果值中有关联,我想通过按字母顺序排序来"解开"它.有没有什么Kotlin、Java函数可以做到这一点? 提前谢谢你
存在实现比较器Comparator for Pair in Kotlin的可能性
这应该是可行的,因为yourMap.toList()
是一个Pair
的列表.
唯一需要的更改是更改第一个和第二个比较器密钥,如下所示(改编自first answer)
fun <T, U> pairComparator(
firstComparator: Comparator<T>,
secondComparator: Comparator<U>
): Comparator<Pair<T, U>> =
compareBy(firstComparator) { p: Pair<T, U> -> p.second }
.thenBy(secondComparator) { p: Pair<T, U> -> p.first }