개요
Kotlin에서는 Collection 객체들의 사용이 더욱 쉽도록 도와주는 함수들이 있다.
이를테면 map, filter.. 등이 있는데
Java Stream에 대응되는 함수들이다.
map
fun main() {
val list = listOf(1, 2, 3, 4, 5)
val sqaureList = list.map { it * it }
print(sqaureList)
}
filter
- 조건을 만족하는 요소만 뽑아서 새로운 Collection을 반환
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6)
val filterList = list.filter { it % 2 == 0 }
print(filterList)
}
forEach
reduce
fold
- 초기값을 시작으로 각 요소들을 순회하면서 요소들의 합을 반환
find
groupBy
- 특정 조건을 기준으로 그룹화도 가능하지만 이 경우는 아래 'partition' 함수 사용을 권장
sortBy / sortedBy
- 요소가 단순 원시타입이 아닌 여러 데이터를 가지고 있는 객체일 때 객체 내 특정 데이터를 기준으로 요소들을 정렬
- sortBy는 mutable 객체, sortedBy는 immutable 객체에서 사용 가능
partition
zip
take / takeWhile
- take : 주어진 갯수의 요소를 반환
- takeWhile : 조건을 만족하는 요소들을 리스트로 반환
find 는 첫 요소 하나만 반환
takeWhile은 조건을 만족하는 요소 모두를 반환
drop / dropWhile
- drop : 주어진 갯수의 요소를 제거
- dropWhile : 조건을 만족하는 요소들을 제외한 리스트를 반환
distinct
- 중복을 제거하고 새로운 Collection을 반환
any / all / none
- 조건을 만족하는지 확인
- any : 요소 중에 하나라도 조건을 만족하면 true
- all : 요소 중에 모든 요소가 조건을 만족하면 true
- none : 요소 중에 조건을 만족하는 요소가 없으면 true