반응형
728x90
반응형
코틀린에서의 컬렉션
코틀린은 자신만의 컬렉션 기능을 제공하지 않고, 자바 컬렉션을 활용한다. 코틀린에서는 변경 가능한(mutable) 컬렉션과 변경 불가능한(immutable) 컬렉션으로 구분하여 사용한다.
Set
데이터 순서가 없으며, 중복이 불가능하다. 기본적으로 변경 불가능(immutable)하며, mutableSetOf(), hashSetOf(), linkedSetOf(), sortedSetOf()로 변경 가능한 Set 생성이 가능하다.
fun main() {
val set = hashSetOf(1, 7, 53)
// 객체가 어떤 클래스에 속하는지 추측하기
println(set.javaClass) // Java의 getClass()
}
Map
key와 value가 한 쌍의 데이터로 이루어진 컬렉션으로, key는 중복이 불가능하고 value는 중복 가능하다. 기본적으로는 변경 불가능(immutable)하고, mutableMapOf(), hashMapOf(), linkedMapOf(), sortedMapOf()로 변경 가능한 Map 생성이 가능하다.
fun main() {
val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") // to : 일반함수
// 객체가 어떤 클래스에 속하는지 추측하기
println(map.javaClass) // Java의 getClass()
}
List
기본적으로는 변경 불가능(immutable)하고, mutableListOf()를 사용하여 변경 가능한 List 생성이 가능하다.
fun main() {
val list = arrayListOf(1, 7, 53)
// 객체가 어떤 클래스에 속하는지 추측하기
println(list.javaClass) // Java의 getClass()
}
자바 컬렉션 활용 이유
표준 자바 컬렉션을 사용하면 자바 코드와 상호작용하기가 훨씬 더 쉽다. 자바에서 코틀린 함수를 호출하거나 코틀린에서 자바 함수를 호출할때 자바와 코틀린 컬렉션을 서로 변환할 필요가 없다. 코틀린 컬렉션은 자바 컬렉션과 똑같은 클래스고, 자바보다 더 많은 기능을 사용할 수 있다.
- 리스트의 마지막 원소 가져오기
fun main() {
// 리스트의 마지막 원소를 가져올 수 있다.
val strings = listOf("first", "Second", "fourteenth")
println(strings.last())
}
- 수로 이뤄진 컬렉션에서 최댓값 가져오기
fun main() {
// 수로 이뤄진 컬렉션에서 최댓값을 찾을 수 있다.
val numbers = setOf(1, 14, 8);
println(numbers.max())
}
반응형
'Coding > Kotlin' 카테고리의 다른 글
[Kotlin in Action] 9. 확장 함수와 확장 프로퍼티 (0) | 2022.05.19 |
---|---|
[Kotlin in Action] 8. 코틀린 함수 호출 (매개변수 이름 명시, 디폴트 파라미터, 최상위 함수(유틸리티 클래스 없애기), 최상위 프로퍼티) (0) | 2022.05.18 |
[Kotlin in Action] 6. 예외처리 (throw, try~catch~finally) (0) | 2022.05.16 |
[Kotlin in Action] 5. while과 for 루프, Map 이터레이션, in으로 원소검사 (0) | 2022.05.15 |
[Kotlin in Action] 4. enum 과 when, 클래스 계층과 스마트 캐스트 (0) | 2022.05.14 |