Kotlin – extraer la list de objects padre de los elementos en la Colección

¿Hay alguna manera en Kotlin para extraer la list de objects padre de los elementos en la Colección? Por ejemplo, si tenemos mutableMaps:

val AllPersons = mutableMapOf<Long,Person>() val ClassAttendants = mutableMapOf<Long,Person>() 

donde la persona es:

 data class Person( PID : Long Name: String Surname: String Father: Person?) 

¿Hay alguna forma de seleccionar a todos los abuelos (distintos) de los asistentes de class?

Como no soy uno para dar soluciones completas, le daré un montón de elementos básicos que probablemente sean útiles.

  1. Podemos get el elemento principal para un elemento determinado con somePerson.father .

  2. Podemos aplicar una function sobre todos los elementos de valor en un map como este:

     myMap.values.map { value -> someFunction(value) } 
  3. Podemos filtrar valores null como este:

     myCollection.filterNotNull() 
  4. Un Set automáticamente "descartará" elementos duplicates. Una alternativa es algo como esto:

     myCollection.distinct() 

Recomiendo encarecidamente revisar los Kotlin Koans . En particular, la sección "Colecciones" toca la aplicación de técnicas cuasi-funcionales para manipular collections.

  • Usando Kovenant de Kotlin sigo entrando en código repetitivo usando Diferido
  • Problema con Kotlin después de que Android Studio se actualizó a 0.6
  • Kotlin: creación de una list mutable con elementos repetitivos
  • Decode ByteArray con Spring 5 WebFlux framework
  • Argumentos pnetworkingeterminados frente a sobrecargas, cuándo usar qué
  • Repetir y crear una database desde el volcado sql: cómo hacerlo?
  • El complemento IdeaVim de IntelliJ inhabilita la conversión de Java a Kotlin
  • Cómo ocultar la barra de navigation de Android o el button cuadrado en la barra de navigation
  • ¿Cómo hacer un plugin de idea en gradle generar una configuration de proyecto adecuada para Kotlin?
  • Expresiones de objects de Kotlin: ejemplo de comparación
  • De la documentation de kotlin no está claro para mí el operador como