에서 removeAll 및 removeif의 사용 사례

인 Yogesh :

난 그냥 코 틀린 시작하고 실험하는 동안, 나는이 발견 :

fun main(args: Array<String>) {
    val list: MutableList<Int> = mutableListOf(1, 2, 3, 4, 5)
    list.removeAll { x -> x in 1..3 }

    list.removeIf { x -> x in 1..3 }
}

그들 모두 동일한 출력 결과

4
5

나는에서 removeAll가 코 틀린와 removeIf 자바하지만에서 removeAll가 removeIf 이미있을 때이 왜 이해하지 못하는 것을 이해하지만? 그리고 사실 우리는 어떤 번거 로움없이 코 틀린에 removeIf를 사용할 수있다. 또는 다른 이상을해야 할 수도 있습니다 모든 사용 사례가 있습니까?

의 Damián 라파엘 Lattenero :

들은 아주 다양한 기능하지만, 코 틀린 상기 방법은 그것의 함수의 인수의 두 가지 유형을 가지고 의미 과부하.

당신이 문서를 읽는다면, 당신은 당신이 컬렉션을 제공함으로써이 기능을 사용할 수 있습니다 볼 수 있습니다 :

fun <T> MutableCollection<out T>.removeAll(
    elements: Collection<T>
): Boolean (source)

또는 필터 기능을 제공합니다 :

fun <T> MutableIterable<T>.removeAll(
    predicate: (T) -> Boolean
): Boolean (source)

그래서, 두 번째는 removeIf의 Java 버전처럼, 처음은 아니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=137673&siteId=1