본문 바로가기
자료구조

Kotlin collections(List, Set, Map) 기본 사용

by Taehyung Kim, dev 2020. 12. 13.
728x90

List

코틀린 표준함수 listOf 를 이용해 List 를 만든다.

코틀린에서 List 는 처음 만든 후 수정이 불가능하다.

아래는 list 를 만든 후 개수, 인자 값을 가져오는 예시이다.

val numbers = listOf("one", "two", "three", "four")
println("${numbers.size}")
println("${numbers.get(2)}")
println("${numbers[3]}")
println("${numbers.indexOf("two")}")

----- results -----
4
three
four
1

 

 

내부 데이터를 수정할 수 있는 List 가 MutableList 이다.

코틀린 표준함수 mutableListOf 를 이용해 만들 수 있다.

아래는 MutableList 를 만든 후 데이터를 추가 및 제거하는 예시이다.

val numbers = mutableListOf(1, 2, 3, 4)
numbers.add(5)
numbers.removeAt(1)
numbers[0] = 0
println(numbers)

----- results -----
[0, 3, 4, 5]

Set

  • Set 은 내부 요소들이 같을 때 순서가 달라도 같은 Set 이다.
  • MutableSet 은 MutableCollection 의 Writing 이 가능한 Set 이다.
val numbers = setOf(1, 2, 3, 4)
println(${numbers.size}")
if (numbers.contains(1)) println("1 is in the set")

val numbersBackwards = setOf(4, 3, 2, 1)
println("${numbers == numbersBackwards}")

----- results -----
4
1 is in the set
true

Map

  • Map 은 Key 와 Value 쌍으로 값을 저장한다.
  • Key 값은 고유값을 가지고 Value 는 동일한 값도 가능하다.
val numbersMap = mapOf("key1" to 1, "key2" to 2, "key3" to 3, "key4" to 1)

println("keys: ${numbersMap.keys}")
println("All values: ${numbersMap.values}")
if ("key2" in numbersMap) println("${numbersMap["key2"]}")    
if (1 in numbersMap.values) println("1 in numbersMap.values")
if (numbersMap.containsValue(1)) println("numbersMap.containsValue(1)")

----- results -----
keys: [key1, key2, key3, key4]
values: [1, 2, 3, 1]
2
1 in numbersMap.values
numbersMap.containsValue(1)
728x90

댓글