Diferencia entre el método takeWhile () y filter () en Kotlin

Estaba haciendo un ejercicio y descubrí que podía get el mismo resultado utilizando los takeWhile() y filter() , así que me gustaría saber cuándo tengo que usar uno u otro.

Gracias y cualquier fuente que quiera compartir conmigo será bienvenida.

La diferencia entre ambos es que el método filter() devuelve una list con los elementos que coinciden con una condición específica. Y el método takeWhile() también devuelve una list con los elementos que coinciden con la condición específica, pero solo teniendo en count los primeros elementos de la list.

Un ejemplo para eso:

 val numbers = arrayOf(3, 3, 3, 9, 1, 4, 5, 8, 96, 3, 66, 3, 3, 3) println("*** takeWhile()") println(numbers.takeWhile { it == 3 }) println("*** filter()") println(numbers.filter { it -> it == 3 }) 

Eso te dará:

 *** takeWhile() [3, 3, 3] *** filter() [3, 3, 3, 3, 3, 3, 3] 
  • Float es un campo no válido para la comparación de Realm
  • Gradle compileKotlin includeRuntime no agrega time de ejecución para jar
  • Daga 2.11: ¿cómo hacer que Actividad y Fragmento compartan valores comunes?
  • Cómo analizar JSON en Kotlin?
  • Cómo contar el time de ejecución de lo observable
  • ¿Cómo crear una biblioteca en Kotlin y usarla desde proyectos que se dirigen a javascript o java?
  • No se puede hacer que Coverity Scan funcione (Java / Kotlin / Gradle 3.3 en Windows y Travis)
  • Usando kotlin-stdlib 1.1.51 pero se carga kotlin-runtime 1.3
  • Kotlin: ¿qué formatting usar para la documentation?
  • Referencia no resuelta: T
  • La compilation de Gradle no puede encontrar tornadofx en Linux