개요
Kotlin STL 정리하기의 마지막 편으로 예상하는 MutableSet & MutableMap에 대한 포스트 입니다.
MutableSet
집합을 의미하는 Set, MutableSet 자료구조의 STL은 전반적으로 List, MutableList와 거의 동일합니다. 따라서 리스트 자료구조를 사용하는 것과 동일하게 사용하면 되고, 추가적으로 아래와 같은 메서드만 알아두면 됩니다.
intersect
set 2개의 교집합을 갖는 set을 리턴합니다.
1 | |
1 | |
union
set 2개의 합합집합을 갖는 set을 리턴합니다.
1 | |
1 | |
SortedSet
Kotlin은 삽입 시에 자동으로 요소들이 정렬되는 SortedSet 자료구조도 제공합니다. 내부적으로는 Java의 TreeSet으로 구현되어 있으며, STL은 Set과 동일합니다.
sortedSetOf
SortedSet을 생성합니다.
1 | |
toSortedSet
일반적인 Set을 SortedSet으로 변환합니다.
1 | |
MutableMap
Map은 유일한 key에 value가 매치되어 있는 형태의 자료구조로, Kotlin의 경우 Entry<K, V> 형태의 객체를 map의 element로 갖습니다. Map과 MutableMap 또한 집합 자료구조와 동일하게 List 및 MutableList의 STL을 사용할 수 있습니다. 아래는 그 외에 Map에서만 사용 가능한 STL 목록입니다.
keys
Map의 key 목록을 담은 set을 반환합니다.
1 | |
1 | |
values
Map의 value 목록을 담은 set을 반환합니다.
1 | |
1 | |
put & set
Map에 key에 따른 value를 추가합니다. set 메서드를 통해 []를 이용할 수 있습니다.
1 | |
1 | |
filterKeys
특정 조건을 만족하는 key만 포함하는 map을 반환합니다.
1 | |
1 | |
filterValues
특정 조건을 만족하는 value만 포함하는 map을 반환합니다.
1 | |
1 | |
get
특정 key에 따른 value를 반환하고, 없을 시 null을 반환합니다.
1 | |
1 | |
getOrElse
특정 key에 따른 value를 반환하고, 없을 시 기본값을 반환하는 함수를 정의해 이를 반환합니다.
1 | |
1 | |
mapKeys
기존 map에서 value를 유지하고 key값들만 변환한 새로운 map을 반환합니다.
1 | |
1 | |
mapValues
기존 map에서 key를 유지하고 value들만 변환한 새로운 map을 반환합니다.
1 | |
1 | |
toSortedMap
Map의 key값을 주어진 조건에 따라 정렬한 SortedMap을 반환합니다.
1 | |
1 | |
마치며
이로써 문자열, 리스트에 이어 집합 및 테이블 형태의 자료구조까지 STL을 정리해보았습니다. 정리하면서 깨달은 Kotlin STL의 또 다른 장점은 바로 Iteratable 형태를 갖는 모든 자료구조는 공통적으로 사용하는 STL이 많이 겹친다는 것입니다. 예를 들어 any, all, filter, map과 같이 유용한 메서드들이 모든 자료구조에서 동일한 기능으로 제공되기 때문에, 설령 익숙치 않은 자료구조더라도 쉽게 STL을 예측해서 사용할 수 있습니다.
지금까지 작성한 Kotlin STL에 대한 게시글은 추후 알고리즘 문제를 풀며 유용한 STL 사용법을 발견할 시 지속적으로 업데이트 할 예정입니다.
- Post link: https://blog.yjyoon.dev/kotlin/2023/03/25/kotlin-03/
- Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.