我有一个TreeMap
,并想以相反的顺序对其进行迭代。惯用的方式是什么?
val tree = TreeMap(mapOf(1 to "one", 2 to "two", 3 to "three"))
tree.forEach { println(it.key) }
预期输出为3, 2, 1
注意:这是一个自我解答的问题:https://stackoverflow.com/help/self-answer
答案 0 :(得分:2)
我将采用forEachReversed
的这种实现方式:
inline fun <K, V> TreeMap<K, V>.forEachReversed(action: (Map.Entry<K, V>) -> Unit) {
descendingMap().forEach(action)
}
与您的解决方案的区别如下:
K
类型参数不必是Comparable
调用以前需要的reverseOrder
descendingMap
返回原始Map
的视图,而不是将其复制inline
,就像标准库中最相似的函数一样