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

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

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

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

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

 

코틀린의 콜렉션(Collection)에는 집합, 리스트, 맵 등이 있습니다.

본글에서는 집합, 리스트, 맵에 대해 생성하고 사용하는 법을 살펴봅니다.

 

집합(Set) 만들기

집합을 만들기 전에 집합에 대한 특징을 살펴봅니다.

집합은 순서가 없고, 중복이 없는 콜렉션입니다.

 

val set = hashSetOf(1, 2, 3)​

 

집합을 만들기 위해, hashSetOf() 메소드를 이용합니다.

 

리스트(List) 만들기

리스트는 집합과는 반대로 순서가 있고, 중복이 가능한 콜렉션입니다.

 

val list = listOf(1, 50, 400)​

 

listOf()라는 메소드를 이용하여, 리스트를 생성할 수 있습니다.

 

그리고, 코틀린에서는 toString()이 기본으로 구현되어 있기 때문에, println()으로 출력을 하면 바로 값을 확인 할 수 있습니다.

Java처럼 따로 toString()을 구현할 필요가 없습니다. (코틀린이 확실히 편하긴 하다!)

 

fun main() {
    val strings = listOf(10, 5, 80, 55, 4, 9)
    println(strings) // toString()이 구현되어 있다.
}
​

 

실행 결과

[10, 5, 80, 55, 4, 9]

 

그리고,리스트에는 다양하고 편리한 메소드들을 제공하고 있습니다.

예를들면, 첫번째 원소를 가져오는 first()함수.

마지막 원소를 가져오는 last() 함수

최댓값을 가져오는 max() 함수.

최솟값을 가져오는 min() 함수. 코드를 살펴봅시다.

fun main() {
    val strings = listOf(10, 5, 80, 55, 4, 9)
    println("First: ${strings.first()}")
    println("Last: ${strings.last()}")
    println("Max: ${strings.max()}")
    println("Min: ${strings.min()}")
}​

 

실행 결과

First: 10

Last: 9

Max: 80

Min: 4

 

맵(Map) 만들기 

맵은 키(key)와 값(value)으로 이루어져있습니다. 키(key)를 통해서 값(value)를 가져오는 특징이 있습니다.

글로 보기보단 코드로 보는게 이해하기 쉽기 때문에 코드를 살펴봅시다.

 

val map = hashMapOf(1 to "one", 2 to "two", 3 to "three")​

 

to라는 용어를 사용하여, 키와 값을 매칭 시킵니다. 여기서 to는 키워드가 아닌 일반 함수임을 유의합니다.

 

fun main() {
    val map = hashMapOf(1 to "one", 2 to "two", 3 to "three", "a" to "A")
    println(map["a"])
}​

 

실행 결과

A

파이썬의 딕셔너리와 비슷하다는 것을 알 수 있습니다.

 

 

클래스 타입을 알고 싶을때는?

javaClass를 이용하면, 해당 객체가 어떤 클래스에 속하는지 확인 할 수 있습니다.

fun main() {
    val set = hashSetOf(1, 2, 3) // 집합 만들기
    val list = listOf(1, 50, 400) // List 만들기
    val map = hashMapOf(1 to "one", 2 to "two", 3 to "three") // Map 만들기 - 여기서 to는 키워드가 아닌 메소드이다.
    // 어떤 클래스에 속해있는지 알고 싶을떄, javaClass를 사용한다.
    println("Set: ${set.javaClass}")
    println("List: ${list.javaClass}")
    println("Map: ${map.javaClass}")
}​

 

실행 결과

Set: class java.util.HashSet

List: class java.util.Arrays$ArrayList

Map: class java.util.HashMap

 

toString()

자바를 공부하신분은 toString()을 잘 아시겠지만, 모르시는 분을 위해 간단하게 설명하면, 해당 객체 안에 어떤 요소들이 들어있는지 확인할 수 있는 메소드입니다.

하지만, toString()을 만들어줘야 사용이 가능합니다. 반면, 코틀린에서는 자동으로 만들어주기 때문에 따로 개발자가 만들 필요 없습니다.

fun main() {
    val strings = listOf(10, 5, 80, 55, 4, 9)
    println(strings) // toString()이 구현되어 있다.
}
​

 

실행 결과

[10, 5, 80, 55, 4, 9]

 

 

다른 'Kotlin' 글

2019/02/15 - [Language/Kotlin] - 코틀린 설치, 인텔리제이와 JDK 설치

 

코틀린 설치, 인텔리제이와 JDK 설치

코틀린은 체코의 젯브레인사에서 만든 언어입니다. 그렇다보니 코틀린을 개발하기에는 인텔리제이라는 IDEA를 쓰는것이 편하고 좋습니다. 우선 인텔리제이를 설치하기 전에 코틀린을 사용하기 위해서는 jdk를 설..

hongku.tistory.com

2019/02/20 - [Language/Kotlin] - 코틀린에서 in으로 범위 원소 검사하기

 

코틀린에서 in으로 범위 원소 검사하기

본 글은 Dmitry Jemerov, Svetlana Isakova의 "Kotlin in action" 책을 참고하여 작성한 글입니다. 코틀린에서 in을 이용해서 할 수 있는 것들이 굉장히 많습니다. 대표적으로 범위 안의 원소를 검사할 때 사용하..

hongku.tistory.com

2019/02/22 - [Language/Kotlin] - 코틀린에서 예외처리하기(try catch, throw)

 

코틀린에서 예외처리하기(try catch, throw)

코틀린에서 예외처리하는 방식은 Java와 비슷합니다(거의 동일하다). 예외 처리를 하는 방식에는 2가지 방식이 있습니다. throw로 예외를 던지는 방식과 try, catch로 예외를 잡아서 처리하는 방식입니다. 첫번째..

hongku.tistory.com

 

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