리스트 변수에 조건과 일치하는 값이 있는지 확인하고 싶은 경우가 있습니다.
검색을 하는 방법으로 all 과 any를 사용할 수 있습니다.
리스트에서 all과 any는 결과에 차이가 있습니다.
먼저 all을 사용해서 검색을 해보겠습니다.
리스트 all 예제
fun main(args: Array<String> {
val iterable = listOf(1, 2, 3)
println(iterable.all { it < 4 })
println(iterable.all { it < 3 })
}
결과
true
false
리스트 변수 iterable을 생성했습니다.
그리고 all 메서드에 람다식으로 조건을 설정했습니다.
조건은 it < 4 와 it < 3 으로 작성했습니다.
all을 사용하게 되면 작성한 조건과 모두 일치해야지만 true를 반환합니다.
하나라도 일치하지 않는 값이 있으면 false를 반환합니다.
이번에는 any를 사용해 실행해보겠습니다.
fun main(args: Array<String> {
val iterable = listOf(1, 2, 3)
println(iterable.any { it < 3 })
println(iterable.any { it < 0 })
}
결과
true
false
any를 사용해서 조건식을 작성할 때에도 람다식을 사용합니다.
작성한 조건식 중 하나라도 일치하는 값이 있는 경우에는 true를 반환합니다.
하지만 조건식과 일치하는 값이 하나도 없는 경우에는 false를 반환합니다.
정리
all 메서드는 작성한 조건이 모두 일치하는 경우에만 true를, any 메서드는 작성한 조건이 하나라도 일치하는 경우에 true를 반환합니다.
댓글