기본형과 달리 배열과 컬렉션은 대부분의 컴퓨터 언어들은 여러 개의 값을 하나의 변수에 저장할 수 있도록 타입을 제공한다.
변수에 배열 타입에 따라 배열의 공간을 만들고 변수에 담아주는 예시
var students = IntArray(10)
var longArray = LongArray(10)
var CharArray = CharArray(10)
var FloatArray = FloatArray(10)
var DoubleArray = DoubleArray(10)
var intArray = IntArray(10)
intArray[10] = 100 // Exception 발생. intArray의 마지막 인덱스는 9입니다.
--> ArrayIndexOutOfBoundsException 발생
컬렉션
-컬렉션은 다른 이름으로는 동적 배열이라고 한다.
-배역과는 다르게 공간의 크기를 처음 크기로 고정하지 않고 임의의 개수를 담을 수 있기 때문이다.
-컬렉션은 크게 세가지 리스트(List),맵(Map),셋(Set)이 있으며 각각은 다음과 같은 용도로 사용할 수 있다.
리스트(List)
-리스트는 저장되는 데이터에 인덱스를 부여한 컬렉션이며 중복된 값을 입력할 수 있다.
-kotlin에서 동적으로 리스트를 사용하려면 리스트 자료형 앞에 Mutable이라는 접두어가 붙는다.
-종류로는 mutableList,mutableMap,mutableSet이 있다.
-배열과 같이 '데이터 타입Of' 형태로 사용할 수 있다.
var list = mutableListOf("MON","TUE","WED")
셋(Set)
-셋은 중복을 허용하지 않는 리스트라고 할 수 있다.
-리스트와 유사한 구조이지만 인덱스로 조회할 수 없고, get 함수도 지원하지 않는다.
-String 타입의 값을 입력받기 위해 다음과 같이 선언할 수 있다.
var set = mutableListOf<String>()
맵(Map)
-맵은 키와 값의 쌍으로 이뤄지 컬렉션이다.
-맵의 키는 리스트의 인덱스와 비슷한데 맵에서는 키를 직접 입력해야한다.
-제네릭으로 키와 값의 데이터 타입을 지정해서 맵을 생성한다.
-다음은 키와 값의 타입을 모두 String으로 사용하기 위한 생성예제이다.
var map = mutableMapOf<String, String>()
map.put("key1", "value1")
키와 값을 추가할 때마다 리스트처럼 맵의 공간이 늘어난다.
key1 | value1 |
예를들어 지금은 위와 같이 공간 하나가 형성되었는데,
여기에
map.put("key2","value2") 을 추가한다면
key1 | value1 |
key2 | value2 |
이런식으로 공간이 한행씩 추가된다.
정리
'TIL > selfpractice' 카테고리의 다른 글
지연 초기화 (1) | 2024.01.17 |
---|---|
null safety (1) | 2024.01.17 |
클래스와 설계-2 (2) | 2024.01.16 |
클래스와 설계-1 (0) | 2024.01.16 |
kotlin 함수 문제1,2,3 (0) | 2024.01.16 |