给出以下模型:
class Participant {
var email = ""
}
class Reservation {
var participants = ArrayList<Participant>()
}
val reservations = ArrayList<Reservation>()
如何获得reservations
中唯一的电子邮件列表,但前提是该电子邮件不为空白?
答案 0 :(得分:4)
您尝试过吗:
reservations.flatMap { reservation -> reservation.participants }
.distinctBy { participant -> participant.email }
.map { participant -> participant.email }
.filter { email -> email.isNotBlank() }
?
答案 1 :(得分:1)
或者这样:
reservations.flatMap {
it.participants.map(Participant::email).filter(String::isNotBlank)
}.toSet() // or .distinct()
由于每个元素都应该是唯一的,因此您可能希望使用Set
,如果只想使用一个唯一的List,请在末尾使用distinct()
。