본문 바로가기
Programando/Android

[Android/Kotlin] Collections_(2)

Collections Types

코틀린에는 기본적으로 3개의 Collection 타입이 존재한다.

  • List : 항상 순서를 지키는 Collection, 인덱스를 이용해 데이터 추가, 수정, 삭제가 가능하다.
  • Set : 집합, 동일한 데이터가 존재할 수 없는 집단인 Collection으로 순서는 보장되지 않는다.
  • Map : Key, Value로 이루어진 타입으로 Key는 중복될 수 없다.
val numbers = mutableListOf("one", "two", "three", "four")

: mutableListOf() - 안에 있는 인자가 그대로 포함된 리스트형 객체를 반환하는 함수

 

코틀린은 mutable과 immutable로 나누어서 지원하고 있다. mutable로 선언된 Collection은 데이터 추가나 수정이 가능하지만 immutable로 선언된 Collection은 데이터의 수정, 추가, 삭제가 불가능하다.

val numbers = mutableListOf("one", "two", "three", "four")
numbers.add("five") // numbers에 "five"가 추가된다.

 

Constructing Collections

: 함수를 호출하는 방식으로 Collection을 만들 수 있다.

  • listOf<T>()
  • setOf<T>()
val numbersSet = setOf("one", "two", "three", "four")
// 데이터 중복 불가능. 데이터 추가나 삭제가 불가능.
  • mapOf()
val numbersMap = mapOf("key1" to 1, "key2" to 2, "key3" to 1)
  • mutableListOf<T>()
  • mutableSetOf<T>()
val emptySet = mutableSetOf<String>()
// 데이터의 추가나 삭제가 가능, 아직은 데이터가 없다.
  • mutableMapOf()
val numberMap = mutableMapOf<String, String>().apply {this["one"] = "1"; this["two"] = "2" }
  •  emptyList<T>()
val empty = emptyList<String>()
  • emptySet<T>()
  • emptyMap()

 

Collection operations

: Collection 자체에 작업을 걸 수 있는 함수

  • isEmpty()
  • get() : List의 요소에 대한 인데스 액세스
  • Transformations : Map을 List로 바꾸거나, List를 Set으로 바꾸는 등
  • Filtering : 조건을 걸어서 해당 조건을 만족하는 요소들만 반환하도록
  • plus / minus : List와 List를 더했을 때 더해진 결과가 나오게 하거나 뺐을 때 뺀 결과가 나오도록
  • Grouping
  • Ordering
  • etc

 


Collections 참고 사이트

반응형