Java, Python, Kotlin 등 자료구조에 사용되며

 

평균, 중복 값을 제외 하는 기능을 겸비하고 있다

 

Collection은 Generic<T>으로 구현되어 자료형 변환에 능하다

 

Generic이란?

실행시 자료형을 결정하는 함수

 

Kotlin 컬렉션 인터페이스의 다이어그램

 

List - 지정된 순서로 저장하고 이에 대한 인덱싱된 액세스를 제공

listOf<T>(Only read)

mutableListOf<T>(read and write)

 

Set - 중복 된 값은 저장 할 수 없다

setOf<T>(Only read)

mutableSetOf<T>(read and write)

 

 

Map - Key, value을 한쌍으로 저장

키의 값에 대한 액세스, 키 및 값 검색 등과 같은 특정 기능을 제공합니다.

다른 컬렉션의 요소에 대한 함수의 결과에서 컬렉션을 만듭니다.

 

 

변환

필터링

+, - 연산자

그룹화

컬렉션 부품 검색

단일 요소 검색

주문

집계 작업

 

 

List 예제

val systemUsers: MutableList<Int> = mutableListOf(1, 2, 3)        //MutableList 생성
val sudoers: List<Int> = systemUsers                              //읽기전용 List

fun addSystemUser(newUser: Int) {                                 //newUser 추가 → Mutablelist
    systemUsers.add(newUser)                      
}

fun getSysSudoers(): List<Int> {                                  //sudoers return
    return sudoers
}

fun main() {
    addSystemUser(4)                                              //list 사이즈 지정
    println("Tot sudoers: ${getSysSudoers().size}")               //list 사이즈 출력
    getSysSudoers().forEach {                                     //하나씩 꺼내 반복적으로 처리
        i -> println("Some useful info on user $i")
    }
    // getSysSudoers().add(5) <- Error!                           //읽기전용 호출시 에러
}

//Tot sudoers: 4
//Some useful info on user 1
//Some useful info on user 2
//Some useful info on user 3
//Some useful info on user 4
 

 

Set 예제

import java.util.*                            //Random() 함수를 사용하기 위해 import

fun main() {
   val random = Random()                     //Random함수 기능을 상수 random에 저장
   val numberSize = mutableSetOf<Int>()      //중복 된 값을 제외하는 mutableSetOf
   
   while (numberSize.size <  5) {           //상수 numberSize가 5가 될 때까지
       val Number = random.nextInt(10) + 1  //상수 Number의 랜덤 된 값 10을 저장
       numberSize.add(Number)               //numberSize 상수에 값을 추가 
   }
   
   print(numberSize)
}
 

Map 예제

val numbers = setOf(1, 2, 3)
println(numbers.map { it * 3 })
println(numbers.mapIndexed { idx, value -> value * idx })

//[3, 6, 9]
//[0, 2, 6]
 

 

 

복사했습니다!