티스토리 뷰
Collection이란?
Collection(컬렉션)은 대부분의 프로그래밍 언어에 있는 자료구조로, 객체의 모음이라 할 수 있다.
컬렉션은 Generic으로 구현이 되어 다양한 타입과 함께 사용할 수 있다.
코틀린에는 List, Set, Map 3가지 컬렉션이 있다.
List, Set, Map 모두 Mutable과 Immutable을 별개로 지원한다.
Mutable vs Immutable
Mutable은 가변. read&write로 생성된 이후 값을 변경할 수 있다.
반면 Immutable은 불변. read-only로 생성된 이후에 값을 수정할 수 없다.
코틀린의 컬렉션들은 아래와 같은 상속 구조를 가지고 있다.
간단하게 예제를 작성해보면서 컬렉션을 어떻게 사용하는지 알아보자!
List
리스트는 데이터를 저장하거나 삭제할 때 순서를 지키는 Collection이다.
배열처럼 인덱스를 이용해 직접 접근할 수 있다.
중복된 값을 가질 수 있고, 추가 삭제 교체가 쉽다.
read-only인 리스트는 listOf() 메서드로 생성할 수 있다.
- 형 추론으로 자료형을 생략할 수 있다.
- get(index)도 지원하고 배열처럼 [index]도 지원한다.
read&write인 리스트는 mutableListOf() 메서드로 생성할 수 있다.
- add(element) : 맨 뒤에 요소 추가
- add(index, element) : 특정 인덱스 위치에 요소 추가
- addAll(index, elements) : 특정 인덱스에 컬렉션 추가. index를 생략하면 맨 뒤에 추가.
- removeAt(index) : 특정 인덱스에 있는 값 삭제
- remove(element) : 특정 요소 삭제
- list[index] = value : 값 수정
- List와 같은 컬렉션 데이터를 println()에 넣으면 대괄호 [] 사이에 ,로 데이터를 구분해서 출력해준다
Set
중복되지 않은 요소들로 구성된 Collection이고 순서는 특별히 정해져 있지 않다.
null 객체를 가질 수 있지만 동일한 객체는 추가될 수 없기 때문에 1개만 가지고 있을 수 있다.
forEach나 Iterator로 모든 객체를 탐색할 수 있다.
read-only인 Set은 setOf() 메서드로 생성할 수 있다.
- size : 컬렉션의 크기 반환
- contains(element) : 특정 요소가 Set에 있는지 확인
- isEmpty() : 아무 값도 포함하고 있지 않을 때 true 반환
- numbers == numbersBackwards : 크기가 같고 같은 요소를 가지고 있으면 true 반환
read&write인 Set은 mutableSetOf() 메서드로 생성할 수 있다.
- add(element) : 요소 추가
- remove(element) : 특정 요소 삭제
- removeIf(filter) : 람다 표현식으로 조건 전달. 조건에 맞는 요소 삭제.
Map
key와 value를 짝지어 저장하는 Collection이다.
value는 중복된 값들이 존재할 수 있지만 key값은 고유한 값 만 가진다.
key와 value를 Pair 객체로 표현하고 A to B 로 간단히 표현할 수 있다.
read-only인 Map은 mapOf() 메서드로 생성할 수 있다.
- map.entries : Map의 key와 value 쌍을 모두 출력
- map.keys : Map의 key 모두 출력
- map.values : Map의 value 모두 출력
- containsValue(value) : 특정 value를 가지고 있는 key 반환
read&write인 Map은 mutableMapOf() 메서드로 생성할 수 있다.
- put(key, value) : 객체 추가
- map[key] = value : 배열 방식으로 객체 추가
- remove(key) : 특정 key값인 쌍을 삭제하고 value값 반환
- remove(key, value) : key와 value가 일치하는 원소가 있다면 삭제한 후 true 반환
List, Set, Map 세 가지 컬렉션에 대해 살펴봤다.
다음 시간에는 컬렉션에서 사용되는 함수에 대한 포스팅으로 돌아오겠슴당~~
'프로그래밍 언어 > Kotlin' 카테고리의 다른 글
Kotlin Collection 관련 함수들을 알아보자! (filter, map) (0) | 2021.07.29 |
---|---|
Kotlin 기본 다지기 4 (0) | 2021.07.26 |
Kotlin 기본 다지기 3 (0) | 2021.07.25 |
Kotlin 기본 다지기 (0) | 2021.07.25 |
Kotlin 기본 다지기 2 (0) | 2021.07.24 |
- Total
- Today
- Yesterday
- C++
- 그래프
- algorithm
- 트리
- 프로그래머스
- 두 포인터
- 이분 탐색
- BOJ
- 스택
- 배열
- 투 포인터
- 구현
- Kotlin
- 백준
- Java
- 큐
- 분할 정복
- 자바
- dfs
- programmers
- 브루트포스
- SW Expert Academy
- SWEA
- 재귀
- 위상 정렬
- 문자열
- BFS
- 정렬
- 알고리즘
- Two Pointer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |