Как получить единый уникальный список предметов по списку списков - PullRequest
0 голосов
/ 15 февраля 2019

Имеются следующие модели:

class Participant {
   var email = ""
}

class Reservation {
   var participants = ArrayList<Participant>()
}

val reservations = ArrayList<Reservation>()

Как получить уникальный список электронных писем в reservations, но только если электронное письмо не пустое?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Или вот так:

reservations.flatMap { 
    it.participants.map(Participant::email).filter(String::isNotBlank)
}.toSet() // or .distinct()

Поскольку каждый элемент должен быть уникальным, вы можете использовать Set, если вы просто хотите, чтобы уникальный список использовал distinct() в конце.

0 голосов
/ 15 февраля 2019

Вы пробовали:

reservations.flatMap { reservation -> reservation.participants }
            .distinctBy { participant -> participant.email }
            .map { participant -> participant.email }
            .filter { email -> email.isNotBlank() } 

?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...