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] 
  • Cómo hacer doble pitido con ToneGenerator
  • Creación de jar ejecutable / uber con maven desde proyecto mezclado con Java y Kotlin
  • Cómo establecer maxLength en Anko
  • El valor de configuration de Proto3 igual al pnetworkingeterminado no se reconoce en el time de ejecución
  • window.reload en Webview
  • Lectura y procesamiento de HOCON en Kotlin
  • Parámetros del tipo de context de Hadoop en Kotlin
  • Kotlin IllegalAccessError con + = y - = para la interfaz delegada
  • Efectos secundarios condicionales y types opcionales en Kotlin
  • Escáner de código de barras 2D portátil Android: cómo acceder al escáner y leer datos
  • NullPointerException al intentar acceder al campo henetworkingado