Kotlin/Collection

yellow·2021년 4월 12일
0

Kotlin

목록 보기
6/13

Collection

📌 Immutable Collection

  • Immutable Collection은 한 번 만들어지면 변경할 수 없다.

list

  • 중복을 허용한다.
  • 순서가 있다.

리스트 만들기

// numberList를 출력해보면 [1, 2, 3, 3]
val numberList = listOf<Int>(1, 2, 3, 3)

리스트 값 접근하기

// numberList의 0번째 원소 접근하기
val a = numberList.get(0)
val a = numberList[0]

set

  • 중복을 허용하지 않는다.(집합의 성질)
  • 순서가 없다.

set 만들기

// numberSet을 출력해보면 [1, 2, 3]
val numberSet = setOf<Int>(1, 2, 3, 3, 3)

set에 있는 모든 요소 접근하기(요소 순회)

// set에 있는 모든 요소 출력
numberList.forEach{
	println(it)
}

map

  • Key, Value 방식으로 관리한다.
  • Key는 중복을 허용하지 않는다.
  • 순서가 없다.

map 만들기

// numberMap을 출력해보면 {one=1, two=2}
val numberMap = mapOf<String, Int>("one" to 1, "two" to 2)

map의 value에 접근하기

val a = numberMap.get("one") // a는 1
val a = numberMap["one"] // a는 1

📌 Mutable Collection

  • Mutable Collection은 변경이 가능하다.

mutableList

  • list의 변경 가능한 버전

mutableList 만들기

val mNumberList = mutableListOf<Int>(1, 2, 3)

mutableList에 값 추가하기

mNumberList.add(4) // mutableList의 끝에 4를 추가하겠다.
mNumberList.add(3, 4) // index 3에 값 4를 추가하겠다.

mutableList에 있는 값 바꾸기

// index 0에 있는 값을 100으로 수정
mNumberList.set(0, 100) 
mNumberList[0] = 100

mutableList에 있는 값 삭제하기

mNumberList.remove(3) // 값이 3인 요소를 삭제하겠다. 중복되는 게 있으면 앞에 있는 것부터
mNumberList.removeAt(3) // index 3에 있는 값을 삭제하겠다.

mutableSet

  • set의 변경 가능한 버전

mutableSet 만들기

val mNumberSet = mutableSetOf<Int>(1, 2, 3, 4, 4, 4)

mutableSet에 값 추가하기

mNumberSet.add(5) 

mutableSet에 있는 값 삭제하기

  • 없는 값을 삭제한다고 해서 에러가 발생하지는 않는다.
mNumberSet.remove(5) // 값 5를 삭제

mutableMap

  • map의 변경 가능한 버전

mutableMap 만들기

val mNumberMap = mutableMapOf<String, Int>("one" to 1, "two" to 2)

mutableMap의 value 바꾸기

mNumberMap.replace("two", 3) // key가 "two"인 것의 value를 3으로 바꾼다.
mNumberMap["two"] = 3 // 대신 mNumberMap 안에 키가 "two"인 게 있어야 한다.

mutableMap에 key,value 쌍 추가하기

mNumberMap.put("three", 3)
mNumberMap["three"] = 3

key들을 모두 출력하기

println(mNumberMap.keys) // [one, two]

value들을 모두 출력하기

println(mNumberMap.values) // [1, 2]

mutableMap에 있는 element 하나 삭제

mNumberMap.remove("one")  // key가 "one"인 element 삭제
mNumberMap.remove("one", 1) // key가 "one"이고 value가 1인 element 삭제

mutableMap에 있는 element들 모두 삭제

mNumberMap.clear()
println(mNumberMap) // {}
profile
할 수 있어! :)

0개의 댓글