Kotlin Collection 공식 문서를 정리 한 글입니다. Collection의 filter operator에 대해 알아봅니다.
Github repo 에서 아래에 적힌 Kotlin 코드들을 확인 하실 수 있습니다.
Filter operator
Filter
- 원본 Collection은 수정하지 않고 조건에 맞는 collection을 생성하는 operator
- 조건 함수를 인자로 받으며, 조건 함수의 값이 true인 element들만으로 새로운 collection을 생성
filter()
/filterIndexed()
등의 operator 활용
1 |
|
- index를 활용하여 filter 함수를 생성 하고 싶은경우
filterIndexed()
함수를 활용 filter()
operator는 조건 함수의 결과 값이 true인 element의 collection 인데, 조건 함수의 결과 값이 false로 collection을 만들고 싶다면filterNot()
활용
1 |
|
filterIsInstance<T>
operator를 활용하여 Type check에 대한 filter 가능
1 |
|
- Nullable 검사 filter
1 |
|
Partition
- filter → 조건에 맞는 하나의 collection 생성 / partition → 조건에 맞는 collection, 조건에 맞지 않는 collection 각각 하나씩 생성
1 |
|
Test predicates
- Collection 안에 element가 특정 조건을 만족하는 것이 있는지 검사하는 operator
any()
/none()
/all()
operator 등을 사용any()
→ 하나의 element라도 조건을 만족하면 true / 그렇지 않으면 falsenone()
→ 모든 element가 조건을 만족하지 않으면 true / 그렇지 않으면 falseall()
→ 모든 element가 조건을 만족하면 true / 그렇지 않으면 false ( empty collection에 대해선 모두 true 반환 )- 가독성을 위해
any
와all
앞에는!
을 붙여 사용하는것을 지양하는것이 좋다 ( !any → all / !all → any로 바꿔 쓸 수 있기 때문 )
1 |
|
any()
/none()
은 조건 식 없이도 사용 가능한데, 조건 식 없이 사용 할 시 element가 collection에 단 하나라도 존재 하는지 / 안하는지를 검사한다 ( == isEmpty() )
1 |
|
출처 : https://kotlinlang.org/docs/collection-filtering.html