[코틀린 문법] 셋, 맵
Set
// Set //
// 리스트와 달리 순서가 정렬되지 않으며 중복이 허용되지 않는 컬렉션
// 인덱스로 위치 지정해 객체 참조하기 불가능
// contains로 객체가 set 안에 존재하는지를 확인하는 식으로만 사용
fun main () {
val testSet1 = mutableSetOf("a", "b", "c")
println(testSet1)
// [a, b, c]
// add로 데이터 추가
testSet1.add("d")
testSet1.add("e")
println(testSet1)
// [a, b, c, d, e]
// 중복을 자동으로 거르기 때문에 e는 한 번만 추가됨
testSet1.add("e")
testSet1.add("e")
testSet1.add("e")
println(testSet1)
// [a, b, c, d, e]
// remove로 데이터 삭제
testSet1.remove("e")
println(testSet1)
// [a, b, c, d]
val a = mutableSetOf("귤", "바나나", "키위")
for (item in a) {
println("${item}")
}
// 귤
// 바나나
// 키위
a.add("자몽")
println(a)
// [귤, 바나나, 키위, 자몽]
a.remove("바나나")
println(a)
// [귤, 키위, 자몽]
println(a.contains("귤"))
// true
}
Map
// Map //
// 객체를 넣을 때 그 객체(value)를 찾아낼 수 있는 key(객체를 찾기 위한 값)를 쌍으로 넣어주는 컬렉션
// 객체의 위치가 아닌 고유한 키를 통해 객체를 참조한다는 특징을 가짐
// 같은 키에 다른 객체를 넣음 -> 기존 객체가 대체됨
// put으로 데이터 추가, remove로 데이터 삭제
// 인덱스는 겁나 귀찮음 -> map 사용
fun main () {
val tes1 = mutableMapOf<Int, String>()
test1.put(5, "유리")
tes1t.put(10, "철수")
test1.put(15, "짱구")
test1.put(22, "훈이")
println(test1[15])
// 짱구
val b = mutableMapOf("아이브" to "LOVE DIVE",
"아이들" to "TOMBOY",
"아이유" to "GANADARA")
for (entry in b) {
println("${entry.key} : ${entry.value}")
}
// 아이브 : LOVE DIVE
// 아이들 : TOMBOY
// 아이유 : GANADARA
b.put("레드벨벳", "Feel My Rhythm")
println(b)
// {아이브=LOVE DIVE, 아이들=TOMBOY, 아이유=GANADARA, 레드벨벳=Feel My Rhythm}
b.remove("아이유")
println(b)
// {아이브=LOVE DIVE, 아이들=TOMBOY, 레드벨벳=Feel My Rhythm}
println(b["레드벨벳"])
// Feel My Rhythm
}
fun main () {
// map 복습 //
val testMap1 = mutableMapOf<Int, String>()
testMap1.put(5, "유리1")
testMap1.put(15, "유리2")
testMap1.put(25, "유리3")
testMap1.put(35, "유리4")
println(testMap1)
// {5=유리1, 15=유리2, 25=유리3, 35=유리4}
for (j in testMap1) {
println(j)
}
// 5=유리1
// 15=유리2
// 25=유리3
// 35=유리4
// map 다른 방법 //
val testMap2 = mutableMapOf<Int, String>()
testMap2[5] = "철수1"
testMap2[15] = "철수2"
testMap2[25] = "철수3"
testMap2[35] = "철수4"
println(testMap2)
// {5=철수1, 15=철수2, 25=철수3, 35=철수4}
for (k in testMap2) {
println(k)
}
// 5=철수1
// 15=철수2
// 25=철수3
// 35=철수4
}
fun main() {
// key(키)-value(값) 저장
val cards = mapOf("Jack" to 11, "Queen" to 12, "King" to 13)
println(cards)
// {Jack=11, Queen=12, King=13}
// 키 사용해 값 검색
val jackValue = cards["Jack"]
println(jackValue)
// 11
// mutable map이어야
val cards2 = mutableMapOf("Jack" to 11, "Queen" to 12, "King" to 13)
println(cards2)
// {Jack=11, Queen=12, King=13}
// 아이템 추가 및 삭제 가능
cards2["Ace"] = 1
println(cards2)
// {Jack=11, Queen=12, King=13, Ace=1}
// mutable map으로 변환하기
val cards3 = mapOf("Jack" to 11, "Queen" to 12, "King" to 13)
println(cards3)
// {Jack=11, Queen=12, King=13}
val mutableCards = cards.toMutableMap()
mutableCards["Ace"] = 1
println(mutableCards)
// {Jack=11, Queen=12, King=13, Ace=1}
}
참고
반응형
'개발(Android) > kotlin syntax' 카테고리의 다른 글
[Kotlin syntax] Collection Functions (2) (0) | 2022.04.09 |
---|---|
[Kotlin syntax] Collection Functions (1) (0) | 2022.04.09 |
[Kotlin syntax] Data Class, Enum Class (0) | 2022.04.08 |
[Kotlin syntax] Nested Class, Inner Class (0) | 2022.04.08 |
[Kotlin syntax] Arguments, Infix Functions (0) | 2022.04.08 |