filter 함수는 컬렉션을 iteration 하면서 주어진 람다에 각 원소를 넘겨서 람다가 true를 반환하는(조건에 맞는) 원소만 필터링하는 기능을 합니다.
filter의 결과는, 입력 컬렉션의 원소 중에서 주어진 조건문에 만족하는 원소만으로 이루어진 새로운 컬렉션 입니다.
inline fun <T> Array<out T>.filter(
predicate: (T) -> Boolean
): List<T>
inline fun <T> Array<out T>.filterIndexed(
predicate: (index: Int, T) -> Boolean
): List<T>
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterIndexedTo(
destination: C,
predicate: (index: Int, T) -> Boolean
): C
fun <reified R> Array<*>.filterIsInstance(): List<R>
(source)
fun <reified R, C : MutableCollection<in R>> Array<*>.filterIsInstanceTo(
destination: C
): C
inline fun <T> Array<out T>.filterNot(
predicate: (T) -> Boolean
): List<T>
fun <T : Any> Array<out T?>.filterNotNull(): List<T>
fun <C : MutableCollection<in T>, T : Any> Array<out T?>.filterNotNullTo(
destination: C
): C
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterNotTo(
destination: C,
predicate: (T) -> Boolean
): C
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterTo(
destination: C,
predicate: (T) -> Boolean
): C
- filter: predicate가 true를 반환하는 요소들만 담긴 리스트를 반환합니다.
- filterIndexed: predicate의 인자가 index, value를 갖습니다. 나머지는 filter와 동일함
- filterIsInstance: 지정된 타입 파라미터의 인스턴스인 모든 요소를 포함하는 목록을 반환합니다.
- filterNot: predicate이 false를 반환하는 요소들만 담긴 리스트를 반환합니다.
- filterNotNull: 배열의 요소 중 null이 아닌 요소들만 담긴 리스트를 반환합니다.
- (filter, filterIndexed, filterIsInstance, filterNot, filterNotNull)To: 필터링된 요소들이 추가될 destination 배열을 지정할 수 있습니다.
fun main() {
val numberArray: Array<Number>
= arrayOf(1, 1.5f, 2.3, 100L, 14.5f, 6.6, Double.NaN)
val array: Array<Int>
= Array(10) { it + 1 }
val containNullArray: Array<Int?>
= arrayOf(1, null, 2, 3, 4, null, 10, null, 12)
val destination: MutableList<Int>
= mutableListOf(10, 143, 12)
val filter = array.filter { it > 5 }
val filterIndexed = array.filterIndexed { idx, i -> idx > 5 }
val filterIsInstance = numberArray.filterIsInstance<Double>()
val filterNot = array.filterNot { it > 5 }
val filterNotNull = containNullArray.filterNotNull()
val filterTo = array.filterTo(destination) { it > 5 }
println(filter) // [6, 7, 8, 9, 10]
println(filterIndexed) // [7, 8, 9, 10]
println(filterIsInstance) // [2.3, 6.6, NaN]
println(filterNot) // [1, 2, 3, 4, 5]
println(filterNotNull) // [1, 2, 3, 4, 10, 12]
println(filterTo) // [10, 143, 12, 6, 7, 8, 9, 10]
}
'코딩테스트 준비(kotlin) > 문법정리' 카테고리의 다른 글
[kotlin 문법] sorted(), sort(), sortedWith(), sortWith() , sortedBy, sortBy() (0) | 2024.07.10 |
---|---|
[kotlin 코틀린] groupBy와 groupingBy (0) | 2024.06.21 |
[kotlin] distinct 중복 제거 (0) | 2024.05.22 |
[kotlin] 코틀린 입력 및 출력 (1) | 2023.10.16 |
[kotlin] 람다표현식 (0) | 2023.08.06 |