KOTLIN

[KOTLIN] 컬렉션

집한구석 2022. 5. 18. 15:24
728x90

Collections (콜렉션)

https://www.uwanttolearn.com/kotlin/our-collection-api-kotlin-framework-class-hierarchy-function-type-predicate/

  • Kotlin은 표준 라이브러리는 집합, 목록 및 지도와 같은 기본 컬렉션 유형에 대한 구현을 제공
  • 기본적으로 Mutable(가변)과 Immutable(불변)을 별개로 지원
  • Koltlin의 상속구조는 위에 이미지처럼 되어있으며 List, Set, Map과 같은 자료형을 제공함

List

  • 순서가 있는 데이터 집합이며 중복을 허용
  • 데이터를 삭제, 삽입을 해도 순서를 지키는 컬렉션임

Set

  • 순서를 유지하지 않는 데이터 집합이며, 중복되는 데이터가 없음 
  • null객체를 가질 수 있음

Map

  • Key, Value 방식의 데이터 집합
  • 순서를 유지하지 않으며, Key는 중복이 불가함

List / Set / Map 생성함수 요약

  불변객체 생성 가변객체 생성
List listOf() mutableListOf()
arrayListOf()
Set setOf() mutableSetOf()
hashSetOf()
linkedSetOf()
Map mapOf() mutableMapOf()
hashMapOf()
linkedMapOf()
  • 기본 생성 함수는 불변으로 생성이 됨

컬렉션 함수

  • Kotlin은 함수형 언어의 특징을 가지고 있기 때문에 좀 더 편리하게 컬렉션함수를 통하여 컬렉션을 사용할 수 있음
  • for문 없이 조건을 걸고 구조의 변경이 가능한 여러가지 함수를 제공함

컬렉션 함수 종류 및 예시

fun main() {
    var names = arrayListOf("김태균", "전채성")
    //forEach로 반복문 대체 출력
    names.forEach { println(it) }
    //filter 해당리스트 조건처리
    println(names.filter { it.startsWith("김") })
    //map을 통하여 새롭게 데이터를 변경
    println(names.map { "이름 : " + it })
    //any로 김태균이 하나라도 존재하는지 확인
    println(names.any { it == "김태균"})
    //all을 통하여 names에 이름이 전부 3자리인지 검증
    println(names.all { it.length == 3 })

    var fruit = setOf("사과", "딸기", "사과망고", "바나나")

    //first로 사과가 포함된 첫번째 값을 출력
    println(fruit.first { it.startsWith("사과") })

    //last로 사과가 포함된 마지막 값을 출력
    println(fruit.last { it.startsWith("사과") })
}
  • 컬렉션 함수는 람다함수를 사용하여 컬렉션을 좀더 편하게 조작할 수 있게 해줌 
  • 경우에 따라 반복문과 조건문 대신 사용하면 좋음

'KOTLIN' 카테고리의 다른 글

[KOTLIN] 확장함수  (0) 2022.05.22
[KOTLIN] Scope 함수  (0) 2022.05.18
[KOTLIN] OPEN 키워드  (0) 2022.05.10
[KOTLIN] DATA CLASS  (0) 2022.05.07
[KOTLIN] OBJECT 키워드  (0) 2022.05.07