티스토리 뷰


1. 컬렉션

- JVM을 기반으로 하는 코틀린에서의 컬렉션은 자바에서 제공하는 클래스들을 그대로 사용합니다.

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/



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함