1. 셋 Set
👩🏻💻 셋은 중복을 허용하지 않는 리스트로 리스트와 유사한 구조이지만 인덱스로 조회할 수 없고, get() 메서드도 지원하지 않음
👩🏻💻 같은 값을 추가하더라도 해당 값은 하나만 저장
👩🏻💻 리스트와 마찬가지로 읽기 전용 셋과 읽기 쓰기 모두 가능한 셋, 총 두가지를 제공
➡️ 각각 setOf(), mutableSetOf() 함수로 객체를 생성
// 읽기 전용 셋
val immutableSet = setOf(1, 1, 2, 2, 2, 3, 3)
println(immutableSet) // [1, 2, 3]
1) 빈 셋으로 초기화하고 값 입력하기
var set = mutableSetOf<String>()
set.add("JAN")
set.add("FEB")
set.add("MAR")
set.add("JAN") // 셋은 중복을 허용하지 않기 때문에 동일한 값은 입력되지 않음
2) 셋 사용하기
👾 인덱스로 조회하는 메서드가 없기 때문에 특정 위치의 값을 직접 사용할 수 없음
println("Set 전체 출력 : ${set}") // Set 전체 출력 : [JAN, FEB, MAR]
3) 삭제하기
👾 값이 중복되지 않기 때문에 값으로 직접 조회해서 삭제 할 수 있음
set.remove("FEB")
println("Set 전체 출력 : ${set}") // Set 전체 출력 : [JAN, MAR]
👾 함수사용 결과는 요소 삭제나 추가가 정상적으로 이루어졌을 때 true,
정상적으로 이루어지지 않았을 때 false로 boolean 형 결과로 나옴
val mutableSet = mutableSetOf(1, 1, 2, 2, 2, 3, 3)
println(mutableSet.add(100)) // true
println(mutableSet.add(3)) // false
2. 맵 Map
👩🏻💻 맵은 키 Key와 값 Value의 쌍으로 입력되는 컬렉션
👩🏻💻 맵의 키는 리스트의 인덱스와 비슷한데 맵에는 키를 직접 입력하고 중복되지 않도록 해야 함
⚡️ 제네릭으로 키와 값의 데이터 타입을 지정해서 맵을 생성
⚡️ 맵의 요소는 Pair(A, B)를 사용하는 데 이는 A to B로도 표현할 수 있음
// 읽기 전용 맵
val immutableMap = mapOf("name" to "tom", "age" to 28, "age" to 20, "height" to 170)
println(immutableMap) // {name=tom, age=20, height=170} 중복이 있을 경우 마지막 키값이 저장됨
1) 맵 생성하기
👾 키와 값의 데이터 타입을 모두 String으로 사용
var map = mutableMapOf<String, String>()
2) 값 추가하기
👾 값을 추가하기 위해 제공되는 put 메서드에 키와 값을 입력
map.put("키1", "값1")
map.put("키2", "값2")
map.put("키3", "값3")
println(map) // {키1=값1, 키2=값2, 키3=값3}
3) 맵 사용하기
👾 get 메서드에 키를 직접 입력해서 값을 사용할 수 있음
println("map에 입력된 키1의 값은 ${map.get("키1")}입니다.") // map에 입력된 키1의 값은 값1입니다.
4) 맵 수정하기
👾 put() 메서드를 사용할 때 동일한 키를 가진 값이 있으면 키는 유지된 채로 값만 수정
map.put("키2", "수정한 값")
map["키2"] = "수정한 값"
println("map에 입력된 키2의 값은 ${map.get("키2")}입니다.")
// map에 입력된 키2의 값은 수정한 값입니다.
5) 맵 삭제하기
👾 remove() 메서드에 키를 입력해 값을 삭제할 수 있음
map.remove("키1")
// 없는 값을 불러오면 null 값이 출력됨
println("map에 입력된 키1의 값은 ${map.get("키1")}입니다.")
// map에 입력된 키1의 값은 null입니다.
[ 내용 참고 : IT 학원 강의 ]
'Programming Language > Kotlin' 카테고리의 다른 글
[Kotlin] 오브젝트, 데이터 클래스, 클래스 상속과 확장 (0) | 2024.04.17 |
---|---|
[Kotlin] 클래스 사용, 생성자 (1) | 2024.04.17 |
[Kotlin] 컬렉션 - 리스트 List (0) | 2024.04.13 |
[Kotlin] 함수 function (0) | 2024.04.09 |
[Kotlin] 배열 Array (0) | 2024.04.08 |