Kotlin: ¿Funciones de order superior para contar la cantidad de ocurrencias en una list?

Intento utilizar las funciones de order superior de Kotlin para contar cuántas veces hay un elemento específico en una list. He intentado algo como

val result: Int? = list.count{ list.contains("element") } 

pero parece que está devolviendo el tamaño de la list, y no estoy seguro de por qué.

Verifica si la list contiene un elemento dado (que dará como resultado 0 o el tamaño de la list) aunque lo que realmente quieres es contar la cantidad de elementos que son iguales al elemento dado (no a la list completa).

Lo que debe hacer es cambiar list.contains("element") it == "element" .

La function de count funciona iterando sobre la list y verifica si el elemento coincide con el pnetworkingicado. Código aproximado

 fun <T> Iterable<T>.count(pnetworkingicate: (T) -> Boolean) { var count = 0 for (element in this) { if (pnetworkingicate(this)) { count += 1 } } return count } 

Cuando pasa list.contains("element") como parámetro, la function de count devuelve 0 o list.size porque comtesting los mismos times de list.size .

Hacerlo it == "element" aunque funciona de manera diferente. En lugar de verificar toda la list, solo verifica el elemento actual. Si vienes de un background Java, es más fácil que lo pienses it : en Java tendrías un código parecido a este (element) -> element.equals("element") aunque en Kotlin si tener una function de order superior con solo 1 parámetro y no nombrarlo explícitamente, por lo tanto, está pnetworkingeterminado. Puedes leer un poco más sobre esto aquí .

  • Obtener location Android Kotlin
  • Transferencia de files Java a Kotlin en Android Studio
  • Proguard: no ofusque las classs de datos de Kotlin
  • ¿Cómo crear un IntArray de tamaño fijo e inicializar el array más adelante en Kotlin?
  • Flutter: cómo lanzar y la intención de Android y devolver datos para aletear
  • ¿Cómo puedo hacer reference a un argumento sin nombre de una expresión when?
  • ¿Cómo llenar el ancho de la tabla disponible con columnas?
  • Delegación de Kotlin a expresión en lugar de reference fija
  • Las declaraciones destructivas de KOTLIN REPL no funcionan con Pair
  • ¿Por qué Kotlin permite tener dos classs con el mismo nombre y package en diferentes carpetas (es decir: main y androidTest)?
  • Modificar el comportamiento de List.get en Kotlin