티스토리 뷰

Collection이란?

 

Collection(컬렉션)은 대부분의 프로그래밍 언어에 있는 자료구조로, 객체의 모음이라 할 수 있다.

컬렉션은 Generic으로 구현이 되어 다양한 타입과 함께 사용할 수 있다.

 

 

코틀린에는 List, Set, Map 3가지 컬렉션이 있다.

List, Set, Map 모두 Mutable과 Immutable을 별개로 지원한다.

 

 

Mutable vs Immutable

 

Mutable은 가변. read&write로 생성된 이후 값을 변경할 수 있다.

반면 Immutable은 불변. read-only로 생성된 이후에 값을 수정할 수 없다.

 

 

 

코틀린의 컬렉션들은 아래와 같은 상속 구조를 가지고 있다.

간단하게 예제를 작성해보면서 컬렉션을 어떻게 사용하는지 알아보자!

 

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

 

 

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
링크
«   2024/12   »
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
글 보관함