신규 블로그를 만들었습니다!
본 글은 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 설치
2019/02/20 - [Language/Kotlin] - 코틀린에서 in으로 범위 원소 검사하기
2019/02/22 - [Language/Kotlin] - 코틀린에서 예외처리하기(try catch, throw)
'Language > Kotlin' 카테고리의 다른 글
코틀린의 메소드 디폴트 값, @JvmOverloads (0) | 2019.03.03 |
---|---|
코틀린에서 예외처리하기(try catch, throw) (0) | 2019.02.22 |
코틀린에서 in으로 범위 원소 검사하기 (0) | 2019.02.20 |
코틀린 설치, 인텔리제이와 JDK 설치 (0) | 2019.02.15 |
코틀린 맵(map) 이터레이터 (0) | 2019.02.14 |
최근댓글