여러 개의 값을 넣을 수 있는 자료형에는 배열 외에도 컬렉션(Collection)이 있습니다. 컬렉션은 다른 이름으로 동적 배열이라고도 하는데, 배열과는 다르게 공간의 크기를 처음 크기로 고정하지 않고 임의의 개수를 담을 수 있기 때문입니다.
컬렉션에는 크게 세가지로 리스트(List), 맵(Map), 셋(Set)이 있습니다.
리스트(List)
리스트(List)는 저장되는 데이터에 인덱스를 부여한 컬렉션이며 중복된 값을 입력할 수 있다.
코틀린에서는 동적으로 리스트를 사용하기 위해서는 리스트 자료형 앞에 뮤터블(Mutable)이라는 접두어(prefix)가 붙는다. 보통 mutablList, mutableMap, mutableSet 으로 사용을 한다.
리스트 생성 - mutablListOf
생성시에는 Array와 같이 [데이터 타입 + Of]의 형태로 사용할 수 있다.
리스트에 값 추가 - add
mutableList 변수에 값을 투가 하기 위해서는 add()함수를 이용한다.
값이 추가되면 동적으로 리스트의 공간이 자동으로 증가합니다. 값의 위치는 인덱스를 따로 지정해 주지 않아도 입력되는 순서대로 인덱스가 지정됩니다.
리스트에 입력된 값 사용 - get
mutableList 변수의 값을 사용하기 위해서는 get()함수를 이용합니다.
위의 예시는 다른 변수에 값을 저장하는 코드입니다. get()함수는 add()함수와는 다르게 값의 위치 즉, 인덱스를 지정해서 몇번째 값을 사용할 것인지 명시해야 합니다.
리스트값 수정 - set
mutableList 변수의 값을 수정 하기 위해서는 set()함수를 이용합니다.
set함수는 수정할 인덱스를 지정하고 변경할 값을 함께 정어 주어야합니다.
리스트의 값 제거 - removeAt
mutableList 변수의 값을 제거 하기 위해서는 removeAt함수를 이용합니다.
값을 삭제하기 위해서는 삭제할 값의 인덱스를 명시해야 합니다.
빈 리스트 생성하기 - 제네릭
아무것도 없는 빈리스트를 생성하면 앞으로 입력되는 값의 데이터 타입을 알 수 없기 때문에 값의 타입을 추론할 수 없습니다. 그래서 빈 컬렉션의 경우 '데이터 타입+Of' 만으로는 생성 할 수 없고 직접 지정을 해주어야합니다.
이처럼 컬렉션을 생성시 사용된 '<>' 괄호는 제네릭이라고 하며 코틀린에서는 컬렉션을 생성할 때 제네릭을 사용 하지 않으면 생성 할 수 없습니다. 하지만 위의 예시처럼 값으로 컬렉션을 생성, 초기화 하는 경우 생략이 가능합니다.
컬렉션의 개수 가져오기 - size
컬렉션의 개수를 가져오기 위해서는 size 프로퍼티를 사용하여 가져옵니다.
'Android' 카테고리의 다른 글
[코틀린] 안드로이드 코틀린 컬렉션 - 이뮤터블 컬렉션 (0) | 2021.10.06 |
---|---|
[코틀린] 안드로이드 코틀린 컬렉션 - set / map (0) | 2021.10.05 |
[kotlin] 안드로이드 코틀린 배열 (0) | 2021.09.27 |
[안드로이드] 스피너 - ArrayAdapter 사용방법 (0) | 2021.05.05 |
[안드로이드] 안드로이드 스튜디오 컨텍스트란? (0) | 2021.04.06 |