Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 如何在给定列表的情况下获取单个唯一的项目列表_Kotlin - Fatal编程技术网

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