신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

코틀린의 이터레이터 맵(map)에 대해 살펴봅시다. for와 while도 있지만, 해당 글에서는 다루지 않습니다. 궁근하신 분은 아래 링크를 통해 확인 할 수 있습니다.

2019/02/13 - [Language/Kotlin] - 코틀린의 이터레이션 for, while 루프

 

코틀린의 이터레이션 for, while 루프

코틀린에서의 가장 기본이 되는 이터레이션에는 for와 while 루프가 있습니다. while문과 같은 경우는 Java와 동일하기 때문에 따로 설명할 필요는 없을 것 같습니다. while문 그래도 간단하게 설명하면, while문..

hongku.tistory.com

 

맵 이터레이션

맵을 이용하기 위해 TreeMap을 사용합니다. (key와 value로 이루어져있음)

예제를 살펴보면 A부터 G까지 2진표현으로 변환하여 맵에 넣은뒤에, 맵 이터레이션을 이용하여 출력하는 예제입니다.

 

fun main(args: Array<String>) {
    val binaryReps = TreeMap<Char, String>()
    for (c in 'A'..'G') {
        val binary = Integer.toBinaryString(c.toInt())
        binaryReps[c] = binary
    }
    // 출력
    for ((letters, binary) in binaryReps) {
        println("${letters} : ${binary}")
    }
}​

 

3번째~ 6번째줄에서 TreeMap에 해당 알파벳에 대한 2진 표현을 구합니다. 여기서 키(key)는 알파벳(예: A)이고 값(value)은 2진표현(1000001)입니다.

4번째 줄을 보면, 2진 표현을 위해 Integer객체의 toBinaryString 메소드를 사용합니다.

8번째 ~ 10번째 줄은 맵 이터레이션하여, key와 value를 가져와 출력해주는 부분입니다.

 

여기서, 자바와 약간 다른점이 있는데

5번째 줄에 binaryReps[c] = binary입니다.(이 부분은 파이썬의 딕셔너리와 비슷하다.) Java에서는 해당 코드를 쓸때, binaryReps.put(c, binary);라고 표현합니다.

 

실행 결과

A : 1000001

B : 1000010

C : 1000011

D : 1000100

E : 1000101

F : 1000110

G : 1000111

 

 

 

이와 같은 방법은 맵이 아닌 컬렉션(Collection)에서도 사용할 수 있는데,

 

fun main(args: Array<String>) {
    val list = arrayListOf("00", "01", "10", "11")
    for ((index, item) in list.withIndex()) {
        println("${index}의 이진수 : ${item}")
    }
}
​

 

배열에서 withIndex()를 이용해서, index를 같이 가져와서 사용할 수 있습니다. (별도로 변수를 선언하고, 매번 그 변수를 증가 시켜줄 필요가 없습니다.)

실행 결과

0의 이진수 : 00

1의 이진수 : 01

2의 이진수 : 10

3의 이진수 : 11

 

본 글은 Dmitry Jemerov, Svetlana Isakova의 "Kotlin in action" 책을 참고하여 작성한 글입니다.

 

다른 글

2019/02/11 - [Language/Kotlin] - 코틀린, enum class와 when 사용하기

 

코틀린, enum class와 when 사용하기

코틀린에는 when이라는 키워드가 있습니다. when은 Java에서 switch와 같은 역할을 합니다. 조금은 다른부분이 있지만, 거의 동일합니다. 글을 시작하기 앞서, enum class에 대해서 잘 모르시는 분은 아래 글을 읽..

hongku.tistory.com

2019/02/12 - [Language/Kotlin] - 코틀린의 is와 스마트 캐스트(Smart cast)란?

 

코틀린의 is와 스마트 캐스트(Smart cast)란?

코틀린에는 스마트 캐스트(Smart cast)가 있습니다. 간단하게 설명하면, 프로그래머가 굳이 원하는 타입으로 캐스팅 하지 않더라도, 컴파일러가 알아서 캐스팅해주는 것을 말합니다. 이해를 돕기 위해 천천히 예제..

hongku.tistory.com

2019/02/07 - [Algorithm/백준 온라인 저지] - 백준 2438번 별찍기, 코틀린으로 풀기

 

백준 2438번 별찍기, 코틀린으로 풀기

해당 문제는 직접 풀어보고 채점도 마친 뒤에 작성한 글입니다. 궁금한점이 있거나, 틀린부분(?) 또는 효율적인 부분이 있다면 댓글로 알려주세요. 문제 풀이는 아래에 위치해 있습니다. 문제를 알고 있다면, 생략..

hongku.tistory.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기