코틀린 강좌 #25 컬렉션 2탄, Set과 Map

Kotlin/기본 문법 · 2020. 12. 24. 14:50

테크과학! DiMo

 

테크과학! DiMo

개발자가 얘기하는 생활 속 IT기술에 대한 과학! 여러분이 몰랐던, 혹은 정확히 알지 못했던 IT 테크놀러지를 파드립니다! 좋은 영상을 위한 채널 후원, 투네이션을 통해서 해주세요! 후원링크 htt

www.youtube.com

 

 

개발 환경: play.kotlinlang.org



Set


리스트와 달리 순서가 정렬되지 않으며, 중복이 허용되지 않은 컬렉션.


따라서 Set은 인덱스로 위치를 지정하여 객체를 참조할 수 없으며 contains()로 객체가 set안에 존재하는 지를 확인하

 

는 식으로 사용
  
Set<out T> 역시 MutableSet<T>이 존재한다.

 

List와 마찬가지로 객체의 추가, 삭제가 가능한지 여부에 따라 사용하게 된다. 그리고 역시

 

요소의 추가 add(데이터)

 

요소의 삭제 remove(데이터)

 

 

fun main() {
    val a = mutableSetOf("귤", "바나나", "키위")
    
    for (item in a) {
        println ("${item}")
    }
    
    a.add("자몽")
    println(a)
    
    a.remove("바나나")
    println(a)
    
    println(a.contains("귤"))
}

Output:
귤
바나나
키위
[귤, 바나나, 키위, 자몽]
[귤, 키위, 자몽]
true

 

 

Map

 


Map은 객체를 넣을 때 그 객체를 찾아낼 수 있는 Key를 쌍으로 넣어주는 컬렉션.

 

 

이런 구조 때문에 객체의 위치가 아닌 고유한 key를 통해 객체를 참조하는 특징.


또한 같은 key에 다른 객체를 넣으면 기존의 객체가 대체된다.


Map<K, out V> 역시 추가 삭제가 가능한 MutableMap<K, V>이 존재한다.

 

요소의 추가 put(데이터)


요소의 삭제 remove(데이터)

 

 

fun main() {
    val a = mutableMapOf("레드벨벳" to "음파음파", 
                        "트와이스" to "FANCY",
                        "ITZY" to "ICY") // key와 value를 to로 이어줌
    
    for (entry in a) {
        println("${entry.key} : ${entry.value}")
    }
    a.put("오마이걸", "번지")
    println(a)
    
    a.remove("ITZY")
    println(a)
    
    println(a["레드벨벳"])
}

Output:
레드벨벳 : 음파음파
트와이스 : FANCY
ITZY : ICY
{레드벨벳=음파음파, 트와이스=FANCY, ITZY=ICY, 오마이걸=번지}
{레드벨벳=음파음파, 트와이스=FANCY, 오마이걸=번지}
음파음파