본문 바로가기

Kotlin

AtomicKotlin _ 3(24 ~ 29) 객체 소개

컬렉션(Collection)

https://kotlinlang.org/docs/collections-overview.html#collection-types

 

 

listOf()

  1. list는 컬렉션(컨테이너), 다른 객체를 담는 객체이다.

  2. list의 마지막 원소의 인덱스보다 더 큰 인덱스를 사용하면 ArrayIndexOutOfBoundException을 던진다.

  3. List<Int> : <>은 타입 파라미터를 표시한다. 뜻 : 이 컨테이너는 ‘파라미터’ 타입의 객체를 담는다

  4. 기본적으로 읽기 전용 : listOf()

  5. 가변 List는 mutableListOf() : 변경 가능

  6. var list = listOf('A') 에다가 list += 'B' 하면은 list : [A,B] 가 된다.

  7. 6번의 현상은 val newList = list + 'B'; list = newList 와 같다.

  8. 이렇게 혼동하지 않기 위해서 읽기전용 list는 val로 설정해준다.

  9. vararg : 길이가 변할 수 있는 인자 목록을 만든다 (가변인자목록 : variable argument listdml 의 줄임말)

  10. 함수 정의에는 vararg로 선언된 인자가 최대 하나만 있어야 함.

  11. 함수 본문에서는 파라미터 이름을 통해 vararg 인자에 접근 가능, array 로 취급

setOf()

  1. Set에 같은 원소를 중복해 넣으면 Set이 자동으로 중복을 없애고 하나만 남긴다.

  2. 원소 순서는 중요하지 않음

  3. 내부에 같은 원소가 들어있으면 같은 집합

  4. 여러가지 일반적인 벤 다이어그램 연산 수행 가능 (union, intersect, subtract)

  5. list에서 중복을 제거하려면 set으로 변환

  6. 가변 set : mutableSetOf()

mapOf()

  1. 키-값 쌍을 Map으로 만들 수 있다.

  2. []연산자는 키를 사용해 값을 검색한다.

  3. keys : 모든 키 값, values : 모든 값을 얻을 수 있음

  4. 각 키는 유일하기 때문에 keys를 호출하면 Set이 생김

  5. 이터레이션을 수행하면 키와 값을 분리할 수 있다.

  6. 이터레이션을 수행하면 항목(entry)로 키-값 쌍을 전달받는다.

  7. 가변 map : mutableMapOf()

etc

take(n)

리스트의 맨 앞에 있는 n개의 원소가 포함된 새 List를 만든다

 

slice(Range)

인덱스와 일치하는 위치의 원소로 이뤄진 새 List를 만든다.

 

sort()

MutableList에서만 작동, 제자리에서 리스트를 정렬 → 원본 리스트를 변경

 

sorted()

원본 List는 그대로 남고 정렬된 새 List가 생성됨

 

takeLast(n)

마지막 n개의 원소로 이뤄진 새 List를 만든다.