티스토리 뷰
Java |
Kotlin |
java.util.ArrayList |
kotlin.collections.ArrayList |
java.util.HashMap |
kotlin.collections.HashMap |
java.util.HashSet |
kotlin.collections.HashSet |
java.util.LinkedHashMap |
kotlin.collections.LinkedHashMap |
java.util.LinkedHashSet |
kotlin.collections.LinkedHashSet |
java.util.RandomAccess |
kotlin.collections.RandomAccess |
java.util.SortedSet |
kotlin.collections.SortedSet |
java.util.TreeSet |
kotlin.collections.TreeSet |
- 코틀린의 컬렉션은 컬렉션 내 자료를 수정할 수 있는 가변 타입(mutable)과 수정이 불가한 불변 타입(immutable)으로 구분됩니다.
자료구조 |
자료 수정 불가(불변 타입) |
자료 수정 가능(가변 타입) |
List |
kotlin.collections.List |
kotiln.collections.MutableList |
Map |
kotiln.collections.Map |
kotiln.collections.MutableMap |
Set |
kotiln.collections.Set |
kotiln.collections.MutableSet |
- 코틀린에서는 인터페이스를 사용하여 컬렉션의 자료 수정 가능 여부를 제한할 수 있지만, 자바에서는 적용이 되지 않으므로 자바와 코틀린 코드를 혼용하는 경우 코틀린에서 제공하는 인터페이스에만 의존하지 않도록 유의해야 합니다.
fun immutable() : List<String> {
// 자료 수정이 불가능한 리스트를 반환
}
fun mutable() : MutableList<String> {
// 자료 수정이 가능한 리스트를 반환
}
- 컬렉션 사용 함수
함수명 |
자료 수정가능 여부 |
반환 타입 |
listOf() |
X |
kotlin.collections.List |
arrayListOf() |
O |
kotlin.collections.ArrayList(java.util.ArrayList) |
setOf() |
X |
kotlin.collections.Set |
hashSetOf() |
O |
kotlin.collections.HashSet(java.util.HashSet) |
linkedSetOf() |
O |
kotlin.collections.LinkedHashSet(java.util.LinkedHashSet) |
sortedSetOf() |
O |
kotlin.collections.TreeSet(java.util.TreeSet) |
mapOf() |
X |
kotlin.collections.Map |
hashMapOf() |
O |
kotlin.collections.HashMap(java.util.HashMap) |
linkedMapOf() |
O |
kotlin.collections.LinkedHashMap(java.util.LinkedHashMap) |
sortedMapOf() |
O |
kotlin.collections.SortedMap(java.util.SortedMap) |
val immutableList : List<String> = listOf("Test1", "Test2", "Test3") // 자료를 수정할 수 없는 리스트
val mutableList : MutableList<String> = arrayListOf("Test1", "Test2", "Test3") // 자료를 수정할 수 있는 리스트
val immutableMap : Map<String, Int> = mapOf(Pair("A", 65), Pair("B", 66)) // 자료를 수정할 수 없는 맵
val mutableMap : HashMap<String, Int> = hashMapOf(Pair("A", 65), Pair("B", 66)) // 자료를 수정할 수 있는 맵
fun printList(arr : List<String>) {
for (i in arr) {
print(" $i")
}
println()
}
fun printMap(map : Map<String, Int>) {
for ((key, value) in map) {
print("<$key $value> ")
}
println()
}
fun main(args: Array<String>) {
mutableList.add("Test4") // mutableList 값 추가
mutableList[2] = "3번째 값 수정" // mutableList 값 수정
mutableMap["C"] = 67 // mutableMap 값 추가
mutableMap["A"] = 14 // mutableMap 값 수정
print("자료를 수정할 수 없는 리스트 출력 = ")
printList(immutableList)
print("자료를 수정할 수 있는 리스트 출력 = ")
printList(mutableList)
print("자료를 수정할 수 없는 맵 출력 = ")
printMap(immutableMap)
print("자료를 수정할 수 있는 맵 출력 = ")
printMap(mutableMap)
}
출처
https://kotlinlang.org/docs/reference/
'프로그래밍 > Kotlin' 카테고리의 다른 글
[Kotlin] 변수와 자료형 / 연산자 (0) | 2020.03.15 |
---|---|
[Kotlin] Kotlin Coding Convention (0) | 2019.08.03 |
[Kotlin] 기본 자료형 2 (0) | 2018.12.25 |
[Kotlin] 기본 자료형 1 (0) | 2018.12.17 |
[Kotlin] 클래스 / 인터페이스(작성중) (0) | 2018.12.11 |
- Total
- Today
- Yesterday
- 10757
- 자동타입
- javacv
- constraintlayout
- algorihtm
- 1158
- algorithm
- a^b
- 함수형사고 Kotlin Java
- 1237
- 알고리즘
- OpenCV
- 2743
- 조세퍼스 문제
- #kotlin
- 영상처리
- 10828
- mssql
- kotlin
- Eclipse
- 피보나치 수 4
- GCD 합
- 10826
- 10827
- 큰 수 A+B
- 문자열
- 1260
- 최대공약수와 최소공배수
- 단어 길이 재기
- #android #motionlayout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |