[Kotlin 깃북] Ch3 코틀린 사용을 위한 기본 문법 4. 배열과 컬렉션

0
post-thumbnail

[Kotlin 깃북] Ch3 코틀린 사용을 위한 기본 문법

4. 배열과 컬렉션

배열(Array)

  • 배열의 크기 정해놓고 사용해야 함
    • 배열 공간의 개수 할당 or 초기화 시 데이터 저장
    • 중간에 개수 추가/제거 불가능
  • 배열 공간의 개수 할당하기
var doubleArray = DoubleArray(10)
var floatArray = FloatArray(10)
var longArray = LongArray(10)
var intArray = IntArray(10)
var charArray = CharArray(10)
  • 초기화 시 데이터 저장하기
var doubleArray = doubleArrayOf(0.0,1.0,2.0,3.0,4.0,5.0)
var floatArray = floatArrayOf(0.0F,1.0F,2.0F,3.0F,4.0F,5.0F)
var longArray = longArrayOf(0L,1L,2L,3L,4L,5L)
var intArray = intArrayOf(0,1,2,3,4,5)
var charArray = charArrayOf('a','b','c','d','e')
  • 배열에 값 입력하기
    • 배열명[인덱스] = 값
    • 배열명.set(인덱스, 값)
  • 배열에 값 사용하기
    • 배열명[인덱스]
    • 배열명.get(인덱스)
  • 배열의 범위를 벗어난 인덱스 -> ArrayIndexOutOfBoundsException 발생

문자열 배열

  • String은 기본 타입 X -> StringArray 타입 X
//배열 공간의 개수 할당하기
var stringArray = Array(10, {item -> ""})
//초기화 시 데이터 저장하기
var dayArray = arrayOf("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")

컬렉션(Collection)

  • 동적 배열 -> 배열과 달리 공간의 크기 고정X
    (동적으로 컬렉션을 사용하기 위해서는, 자료햔 앞에 Mutable 접두어 필요)
  • 컬렉션 값의 단위 = 엘리먼트(Element)
    • ex. List의 엘리먼트 = List에 저장된 값
    • ex. Map의 엘리먼트 = Map에 저장된 키-값 쌍

Mutable/Immutable

  • Mutable: 변경 가능
  • Immutable: 변경 불가능 (수정, 추가, 제거 불가능)
  • Kotlin 컬렉션은 모두 Immutable로 설계됨
    (ex. List, Map, Set)
  • 동적 배열로 사용하기 위해서는, Mutable 타입 사용해야
    (ex. MutableList, MutableMap, MutableSet)

컬렉션 - 리스트(List)

  • 데이터에 인덱스 부여, 중복된 값 가능
  • 값 추가하기
    • MutableList명.add(값)
  • 값 수정하기
    • MutableList명[인덱스] = 값
    • MutableList명.set(인덱스,값)
  • 값 사용하기
    • MutableList명[인덱스]
    • MutableList명.get(인덱스)
  • 값 제거하기
    • MutableList명.removeAt(인덱스)
  • 리스트 속 값의 개수 가져오기
    • MutableList명.size

빈 리스트 사용하기

  • 아무것도 없는 빈 리스트 -> 데이터 타입 추론 불가능
  • var MutableList명 = mutableListOf<컬렉션에 저장될 값의 타입>()

제네릭(Generic)

  • 제네릭(<>): 시용하는 값의 타입을 지정하기 위한 도구

컬렉션 - 맵(Map)

  • 키(Key)-값(Value) 쌍 저장
  • 값 추가하기/수정하기
    • MutableMap명[키] = 값
    • MutableMap명.put(키, 값)
  • 값 사용하기
    • MutableMap명[키]
    • MutableMap명.get(키)
  • 값 삭제하기
    • MutableMap명.remove(키)

컬렉션 - 셋(Set)

  • 데이터에 인덱스 부여 X, 중복된 값 불가능
  • 값 추가하기
    • MutableSet명.add(값)
  • 값 제거하기
    • MutableSet명.remove(값)
profile
Be able to be vulnerable, in search of truth

0개의 댓글