컬렉션(Collection)
listOf()
- list는 컬렉션(컨테이너), 다른 객체를 담는 객체이다.
- list의 마지막 원소의 인덱스보다 더 큰 인덱스를 사용하면 ArrayIndexOutOfBoundException을 던진다.
- List<Int> : <>은 타입 파라미터를 표시한다. 뜻 : 이 컨테이너는 ‘파라미터’ 타입의 객체를 담는다
- 기본적으로 읽기 전용 : listOf()
- 가변 List는 mutableListOf() : 변경 가능
- var list = listOf('A') 에다가 list += 'B' 하면은 list : [A,B] 가 된다.
- 6번의 현상은 val newList = list + 'B'; list = newList 와 같다.
- 이렇게 혼동하지 않기 위해서 읽기전용 list는 val로 설정해준다.
- vararg : 길이가 변할 수 있는 인자 목록을 만든다 (가변인자목록 : variable argument listdml 의 줄임말)
- 함수 정의에는 vararg로 선언된 인자가 최대 하나만 있어야 함.
- 함수 본문에서는 파라미터 이름을 통해 vararg 인자에 접근 가능, array 로 취급
setOf()
- Set에 같은 원소를 중복해 넣으면 Set이 자동으로 중복을 없애고 하나만 남긴다.
- 원소 순서는 중요하지 않음
- 내부에 같은 원소가 들어있으면 같은 집합
- 여러가지 일반적인 벤 다이어그램 연산 수행 가능 (union, intersect, subtract)
- list에서 중복을 제거하려면 set으로 변환
- 가변 set : mutableSetOf()
mapOf()
- 키-값 쌍을 Map으로 만들 수 있다.
- []연산자는 키를 사용해 값을 검색한다.
- keys : 모든 키 값, values : 모든 값을 얻을 수 있음
- 각 키는 유일하기 때문에 keys를 호출하면 Set이 생김
- 이터레이션을 수행하면 키와 값을 분리할 수 있다.
- 이터레이션을 수행하면 항목(entry)로 키-값 쌍을 전달받는다.
- 가변 map : mutableMapOf()
etc
take(n)
리스트의 맨 앞에 있는 n개의 원소가 포함된 새 List를 만든다
slice(Range)
인덱스와 일치하는 위치의 원소로 이뤄진 새 List를 만든다.
sort()
MutableList에서만 작동, 제자리에서 리스트를 정렬 → 원본 리스트를 변경
sorted()
원본 List는 그대로 남고 정렬된 새 List가 생성됨
takeLast(n)
마지막 n개의 원소로 이뤄진 새 List를 만든다.
'Kotlin' 카테고리의 다른 글
AtomicKotlin _ 5(42 ~ 49) 함수형 프로그래밍 (0) | 2023.07.14 |
---|---|
AtomicKotlin _ 4(30 ~ 41) 사용성 (0) | 2023.06.30 |
AtomicKotlin _ 2(16 ~ 23) 객체 소개 (0) | 2023.06.26 |
AtomicKotlin _ 1.프로그래밍 기초 (0) | 2023.06.19 |