엔지니어 규의 IT 프로그래밍 다이어리

[Kotlin] 25. Set 과 Map 본문

프로그래밍 언어/코틀린

[Kotlin] 25. Set 과 Map

엔지니어 규 2022. 6. 1. 16:10
728x90

우리는 컬렉션 클래스 중 가장 단순한 형태인 List를 앞에서 배웠다. 이번에는 Set과 Map 을 알아보자.

 

 

 

Set

 

Set은 List와 달리 순서가 정렬되지 않으며 중복이 허용되지 않는 컬렉션이다. 

따라서 set 은 인덱스로 위치를지정하여 객체를 참조할 수 없으며, contains 로 객체가 set 안에 존재하는지 확인하는 방법이 있다.

 

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("귤")) //true
    
}

위 코드를 통해 객체의 추가, 삭제, 확인이 잘 실행되었음을 알 수 있다. 

 

 

Map

 

map은 객체를 넣을때 그 객체를 찾아낼 수 있는 key를 쌍으로 넣어주는 컬렉션이다. 

 

key 와 value 즉, 객체는 내부적으로는 MutableMap.MutableEntry의 객체로 담겨져 있으며, 이런 구조때문에

 

객체의 위치가 아닌 고유한 키를 통해 객체를 참조하는 특징을 가지고 있다. 

 

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

 

Map 역시 Map<K, out V>.  , MutableMap<K,V> 와 같이 추가, 삭제 가 가능한 MutableMap이 별도로 존재하며,

 

요소의 추가는 put(key,value)   삭제는 Remove(key) 로 하게 된다.

 

fun main(){

    val a = mutableMapOf(
        "레드벨벳" to "음파음파",
        "트와이스" to "Fancy",
        "Itzy" to "Icy")

    for( i in a)
    {
        println("${i.key} : ${i.value}")
    }
    /*
    레드벨벳 : 음파음파
    트와이스 : Fancy
    Itzy : Icy
    */

    a.put("오마이걸","번지")
    println(a)  //{레드벨벳=음파음파, 트와이스=Fancy, Itzy=Icy, 오마이걸=번지}

    a.remove("Itzy")
    println(a) // {레드벨벳=음파음파, 트와이스=Fancy, 오마이걸=번지}

    println(a["레드벨벳"]) //음파음파

}

위 코드를 실행해 보면 객체의 추가,삭제,참조가 잘 실행된것을 볼 수 있다.

728x90
Comments