프로그래밍 언어/코틀린

코틀린 21. 셋(Set)

닉네임못짓는사람 2020. 12. 30. 01:42
반응형

이번 글에서는 셋에 대해서 알아보도록 하겠습니다.

셋(Set)


Set은 List와 마찬가지로 코틀린의 collection 클래스를 상속받는 세 클래스중 하나입니다.

Set은 수학에서의 집합이라고 생각하시면 되는데요.

List와는 달리 안에 있는 데이터들 간에 순서가 존재하지 않으며, 중복을 허용하지 않는다는게 특징입니다.

때문에 이전에 Array와 List처럼 인덱스를 사용해 내부의 데이터를 참조할 수는 없으며,

내부에 데이터가 존재하는지 확인하는 용도로 사용됩니다.

그리고 Set은 List처럼 변경 불가능한 그냥 Set과 변경 가능한 MutableSet으로 나뉩니다.

 

선언 방법은 setOf와 mutableSetOf키워드를 사용하시면 됩니다.

fun main() {
    var se1 = setOf(1, 5, 3, 15, 50)
    var se2 = mutableSetOf(1, 5, 3, 15, 50)
    println(se1)
    println(se2)
}

Set관련 함수


set을 조작하려면 list처럼 set에 관련된 함수를 사용해야 하는데,

list, set, 그리고 map은 모두 컬렉션 클래스를 상속받기 때문에 기본적인 함수들은 거의 비슷합니다.

그럼 어떤 함수들이 있는지 알아보도록 합시다.

 

1. add : set에 데이터를 추가하는 함수입니다.

fun main() {
    var se = mutableSetOf(1, 5, 3, 15, 50)
    se.add(10)
    println(se)
    se.add(10)
    println(se)
}

set은 중복을 허용하지 않기 때문에 코드 처럼 10을 두 번 추가해도 set에는 하나의 10만 존재합니다.

 

2. clear : set의 모든 데이터를 제거하는 함수입니다.

fun main() {
    var se = mutableSetOf(1, 5, 3, 15, 50)
    se.clear()
    println(se)
}

 

3. remove : set에서 데이터를 삭제하는 함수입니다.

리스트와 마찬가지로 set안에 있는 해당 데이터를 삭제합니다.

set에는 인덱스가 없기 때문에 removeAt은 존재하지 않습니다.

fun main() {
    var se = mutableSetOf(1, 5, 3, 15, 50)
    se.remove(3)
    println(se)
}

 

4. contains : set에 해당 데이터가 있는지 확인하는 함수입니다.

이 함수는 해당 데이터가 set에 있으면 true를, 없으면 false를 반환합니다.

fun main() {
    var se = mutableSetOf(1, 5, 3, 15, 50)
    println(se.contains(3))  
}

이외의 다른 함수들을 알고 싶다면 아래의 링크에서 확인해주시길 바랍니다.

kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/

 

MutableSet - Kotlin Programming Language

 

kotlinlang.org

이렇게 이번 글에서는 set에 대해서 알아봤습니다.

이번 글은 이 정도로 마치도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > 코틀린' 카테고리의 다른 글

코틀린 23. 고차함수, 람다함수  (0) 2021.01.05
코틀린 22. 맵(Map)  (0) 2021.01.01
코틀린 20. 리스트(List)  (0) 2020.12.28
코틀린 19. 접근제한자  (0) 2020.12.28
코틀린 18. 프로젝트 구조  (0) 2020.12.27