Kotlin 如何在给定列表的情况下获取单个唯一的项目列表
鉴于以下模型:Kotlin 如何在给定列表的情况下获取单个唯一的项目列表,kotlin,Kotlin,鉴于以下模型: class Participant { var email = "" } class Reservation { var participants = ArrayList<Participant>() } val reservations = ArrayList<Reservation>() 只有在电子邮件不是空的情况下,我如何才能获得预订中唯一的电子邮件列表?您是否尝试过: reservations.flatMap { reservat
class Participant {
var email = ""
}
class Reservation {
var participants = ArrayList<Participant>()
}
val reservations = ArrayList<Reservation>()
只有在电子邮件不是空的情况下,我如何才能获得预订中唯一的电子邮件列表?您是否尝试过:
reservations.flatMap { reservation -> reservation.participants }
.distinctBy { participant -> participant.email }
.map { participant -> participant.email }
.filter { email -> email.isNotBlank() }
? 您是否尝试过:
reservations.flatMap { reservation -> reservation.participants }
.distinctBy { participant -> participant.email }
.map { participant -> participant.email }
.filter { email -> email.isNotBlank() }
? 或者像这样:
reservations.flatMap {
it.participants.map(Participant::email).filter(String::isNotBlank)
}.toSet() // or .distinct()
由于每个元素都应该是唯一的,因此您可能需要使用一个集合,如果您只需要一个唯一的列表,请在末尾使用distinct。或类似于此:
reservations.flatMap {
it.participants.map(Participant::email).filter(String::isNotBlank)
}.toSet() // or .distinct()
由于每个元素都应该是唯一的,所以您可能需要使用一个集合,如果您只需要一个唯一的列表,请在末尾使用distinct