kotlin. MutableMap

Есть коллекция и необходимо пробежаться по ней следующим образом:

val l=mapOf(-1.0 to 1.0, 10.0 to 0.0 , 1.0 to 1.0)
    l.keys.forEach{ println(it-1 )} 

под println(it-1 ) подразумеваю предыдущий ключ. Две проблемы:1)Как сделать, чтобы действительно возвращал предыдущий ключ, а не значение ключа-1 2)Если первая проблема будет решена, то что будет возвращено года it будет обозначать самый первый ключ коллекции?


Ответы (1 шт):

Автор решения: zed
fun main() {
    val map = mapOf(-1.0 to 1.0, 10.0 to 0.0 , 1.0 to 1.0)
    
    var x: Double? = null // тут будет храниться предыдущее значение
    
    for ((key, _) in map) {
        if (x != null) {
            // если предыдущее значение есть, используем его
            println("$x")
        } else {
            // предыдущего значения ещё нету, т.к. это первая
            // итерация цикла
            println("null")
        }
        
        // запомним текущий ключ, для вывода его на следующем
        // шаге цикла
        x = key
    }    
}

Вывод:

null
-1.0
10.0
→ Ссылка