참조: 유튜브 디모의 코틀린
코드테스트사이트: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(데이터)
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(키)
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 |