[Kotlin] Array(배열) 과 Collection(List, Set, Map)

유존돌돌이·2023년 3월 22일
0

Kotlin

목록 보기
7/10
post-thumbnail

배열

  val array = arrayOf(100, 200)
  // 인덱스
  for(i in array.indices) {}
  // 인덱스, 값
  for((i,v) in array.withIndex()) {}
  // 값 추가해서 새로운 배열 리턴 (Copy)
  for(n in array.plus(400)) {
      println(n)
  }

Collection

컬렉션을 선언할 때, 불변인지 가변인지 먼저 설정해야함.
컬렉션안에 불변인 Reference Type의 Element는 바꿀 수 있음

List

    // 불변 List
    val numbers = listOf(100, 200)
    val emptyList = emptyList<Int>() // 비어 있는 리스트는 제너릭으로 타입을 명시해아함

    // 인덱스
    for(i in numbers.indices) {}
    // 인덱스, 값
    for((i,v) in numbers.withIndex()) {}
    // 값 추가해서 새로운 배열 리턴 (Copy)
    for(n in numbers.plus(400)) {
        println(n)
    }

    // 가변 List
    val mutableNumbers = mutableListOf(100,200)
    mutableNumbers.add(1)
    mutableNumbers[1] = 3
    for(i in mutableNumbers.indices) {}
    for((i, v) in mutableNumbers.withIndex()) {}
    for(n in mutableNumbers) {
        println(n)
    }

Set

    // 불변 Set
    val numbersSet = setOf(100,200)
    for(n in numbersSet) {}
    for((i, v) in numbersSet.withIndex()) {}

    // 불변 -> 가변 mutableSetOf(100,200)
    val numbersMutableSet = numbersSet.toMutableSet()
    numbersMutableSet.add(333)
    for(n in numbersMutableSet) {println(n)}

Map

    // 불변 Map
    val numbersMap = mapOf<Int,String>(1 to "Monday", 2 to "Tuesday", 99 to "Holiday")
    // key
    for(key in numbersMap.keys) {}
    // value
    for(key in numbersMap.values) {}
    // key, value
    for((k, v) in numbersMap) {
        println("${k} , ${v}")
    }
    // key값으로 호출
    println(numbersMap[99])

    // 가변 Map (mutableMapOf)
    val numbersMutableMap = numbersMap.toMutableMap()
    numbersMutableMap[3] = "Wednesday"
    println(numbersMutableMap[3])

TIP : 깔끔한 코드와 불필요한 가변 리스트 사용을 줄이기 위해 우선 불변 리스트를 만들고, 꼭 필요한 경우가변 리스트로 바꾸자

0개의 댓글