在Kotlin中按相反的顺序排序地图

时间:2018-03-09 15:08:43

标签: android kotlin

当我要对Map进行排序时,我使用:

map.toSortedMap()

但是如何以相反的顺序对地图进行排序?

例如,我的Map<Double, Int>.toSortedMap()排序,因此我有:

{0.01=10, 0.05=7, 0.1=8, 0.25=6, 0.5=15, 1.0=3, 2.0=9, 5.0=8, 10.0=14, 20.0=6, 50.0=10}

我想要像:

{50.0=10, 20.0=6, 10.0=14, 5.0=8, 2.0=9, 1.0=3, 0.5=15, 0.25=6, 0.1=8, 0.05=7, 0.01=10}

2 个答案:

答案 0 :(得分:5)

正如@Venkata Raju在评论中所说,你可以使用java.util.Comparator.reverseOrder()(从1.8开始提供):

map.toSortedMap(Comparator.reverseOrder())

您还可以使用Kotlin标准库的reverseOrder()包中的kotlin.comparisons函数:

map.toSortedMap(reverseOrder())

答案 1 :(得分:2)

有点晚了,但希望对您有所帮助。

对于 API <= 23

map.asIterable().reversed()

对于 API > 24

map.toSortedMap(Comparator.reverseOrder())