TIL/selfpractice

kotlin 배열과 컬렉션

crablo 2024. 1. 15. 21:20
728x90

기본형과 달리 배열과 컬렉션은 대부분의 컴퓨터 언어들은 여러 개의 값을 하나의 변수에 저장할 수 있도록 타입을 제공한다.

 

변수에 배열 타입에 따라 배열의 공간을 만들고 변수에 담아주는 예시

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")

mutableList 로그캣 결과

 

 

셋(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

이런식으로 공간이 한행씩 추가된다.

 

 

정리

배열과 컬렉션 정리

 

728x90

'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