Я бы пошел с этой реализацией forEachReversed
:
inline fun <K, V> TreeMap<K, V>.forEachReversed(action: (Map.Entry<K, V>) -> Unit) {
descendingMap().forEach(action)
}
Отличия от вашего решения следующие:
- параметр типа
K
не делаетt должно быть Comparable
, что ранее требовалось для reverseOrder
вызова descendingMap
, вместо копирования