본문 바로가기
코틀린 문법

18. Set과 Map

by 농농씨 2023. 5. 31.

참조: 유튜브 디모의 코틀린

코드테스트사이트:play.kotlinlang.org

단축키(맥북):

맥북 스크린샷 바로 클립보드에 붙여넣기

-control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능)

화면에 분할해놓은 창끼리 이동

-command+'

한 창에서 탭끼리 이동

-command+shift+{/}

 

//컬렉션 클래스에는 List, Set, Map 으로 총 세개의 클래스가 있다
//지난시간 list알아봤고 오늘은 Set과 Map에 대해 알아보자


//Set
//set은 list와 달리 '순서가 정렬되지 않으며, 중복이 허용되지 않는 컬렉션'
//따라서 set은 인덱스로 위치를 지정하여 객체를 참조할 수는 없으며 
//contains로 객체가 set안에 존재하는지를 확인하는식으로만 사용
//ex. sampleSet.ontains("디모")
// "sampleSet에 디모가 있는지 알려줘"
//set도 list와 마찬가지로 객체의 추가,삭제 가능 여부 따라서 두종류 존재
//Set<outT>, MutableSet<T>
//요소의 추가 : add(데이터)
//     삭제 : remove(데이터)

set에서 객체의 추가,삭제,확인


fun main(){
    
    val a = mutableSetOf("귤","바나나","키위")
    //귤,바나나,키위를 a라는 변수에 set으로 만들어봄
    
    for(item in a)//for문 사용하여 Set의 모든 객체 꺼내서 출력
    {
        println("${item}")
    }
    
    a.add("자몽") //add사용하여 객체 추가하고
    println(a)//출력
    
    a.remove("바나나")//삭제하고
    println(a)//출력
    
    println(a.contains("귤"))//contains함수로 객체 존재 확인하고
    println(a)//출력
    
}

 

//Map
//map은 객체를 넣을 때 그 객체를 찾아낼 수 있는 Key를 쌍으로 넣어주는 컬렉션
//key:객체를 찾기 위한 값
//value:key와 연결된 객체
//내부적으로 key와 value는 MutableMap.MutableEntry의 객체로 담겨있으며
//이런 구조때문에 객체의 위치가 아닌 고유한 키를 통해 객체를 참조하는 특징있음
//ex. sampleMap["디모"]
//    "디모라는 key에 연결된 객체를 알려줘"
//또한, 같은 key에 다른 객체 넣으면 기존의 객체가 '대체'되니 유의
//Map 역시 추가삭제가 가능한 MutableMap이 별도로 존재함
//Map<K, out V>, MutableMap<K, V>
//요소의 추가 : put(키,값)
//     삭제 : remove(키)

map에서의 객체 추가,삭제,참조


fun main(){
    
    val a =mutableMapOf("레드벨벳" to "음파음파",
                        "트와이스" to "Fancy",
                        "ITZY" to "ICY")
    //각각 key와 value를 to로 이어줌
    
    for(entry in a){ //for문으로 하나씩 꺼내어 출력
        println("${entry.key}:${entry.value}")
    }
    //MutableMap.MutableEntry 객체로 들어있기 때문에
    //속성인 key와 value를 출력하면 됨
    
    a.put("오마이걸","번지")//put을 통해 새 key와 객체 넣음
    println(a)
    
    a.remove("ITZY")//"ITZY"라는 키를 가진 객체를 삭제
    println(a)
    
    println(a["레드벨벳"])//"레드벨벳"이라는 Key를 마치 배열을 참조하듯
     //map의 인덱스 형태로 참조해서 출력
    
}

//세가지클래스가 들어있는
//이 컬렉션은 그 자체로도 중요하지만 컬렉션함수와 사용하면 더 유용하다







 

 

 

 

 

 

 

5월14일에 쓰고 다음글이 5월 31일? 정신차려라

'코틀린 문법' 카테고리의 다른 글

20. 컬렉션함수(2)  (0) 2023.06.03
19. 컬렉션함수(1)  (0) 2023.06.03
17. Data Class와 Enum Class  (1) 2023.05.14
16. 중첩클래스와 내부클래스  (0) 2023.05.14
15. 함수의 argument를 다루는 방법과 infix 함수  (0) 2023.05.14