코틀린에서 구조분해를 이용해 맵 자료형 iteration을 편리하게 할 수 있습니다

 

val binaryReps = TreeMap<Char, String>()

for (c in 'A'..'F') {
    binaryReps[c] = Integer.toBinaryString(c.code)
}

for ((letter, binary) in binaryReps) {
    println("$letter: $binary")
}

예제입니다

for문 안에서 (k, v) in map 이런식으로 사용할 수 있습니다

 

파이썬 사용자는 "엥 그거 .items() 쓰면 다 되는거자나 뭐가 신기함?" 할 수도 있지만..

 

for (Map.Entry<String, Object> entry : map.entrySet()) {
    String key = entry.getKey();
    Object value = entry.getValue();
    // ...
}

자바에서는 destructuring이 안되기 때문에 이렇게 Map.Entry를 써야 합니다 ㅠ

반응형