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
"Android" 카테고리의 최근 포스팅
카테고리 모든 글 보기Kotlin - 코루틴 동작 원리 ( Continuation / CPS / State Machine ) | 2025. 04. 23 |
---|---|
JVM - Runtime Data Area - Thread | 2025. 04. 21 |
JVM - Runtime Data Area - Heap | 2025. 04. 21 |
JVM - Runtime Data Area - Method | 2025. 04. 19 |
JVM - Interned string | 2025. 04. 18 |
Android - 직렬화 | 2025. 04. 17 |
Hilt - ComponentScope | 2025. 04. 16 |
Kotlin - Channel | 2025. 04. 15 |
Android - ViewModel 에 대해서 | 2025. 04. 14 |
Android - Bundle 이란 | 2025. 04. 13 |