【发布时间】:2018-09-28 13:43:44
【问题描述】:
能否请您告诉我得到下面提到的输出的原因? 我希望得到以下输出:
[Person(_name=xyz4, _age=30),
Person(_name=xyz5, _age=50)]
因为不同的操作符
主要:
fun main(args: Array<String>) {
val person1 = Person("xyz1", 10);
val person2 = Person("xyz2", 20);
val person3 = Person("xyz3", 30);
val person4 = Person("xyz4", 30);
val person5 = Person("xyz5", 50);
var persons = listOf(
person1, person2, person3, person4 , person5)
.asSequence()
.filter { x-> x.age >=30 }
.distinct()
println(persons.toList())
}
输出:
[Person(_name=xyz3, _age=30), Person(_name=xyz4, _age=30),
Person(_name=xyz5, _age=50)]
【问题讨论】:
-
你可以用
sequenceOf代替listOf -
因为你的
person4已经 60 岁了 -
distinct删除重复项,但没有重复项。为什么你认为它应该删除Person(_name=xyz3, _age=60)? -
请注意,输出与输入不匹配。您的输入中没有姓名为 xyz3 且年龄为 60 的人。所以你可能没有得到你发布的输出,或者你可能没有使用你发布的 inpt。
-
@LetsamrIt
Person(_name=xyz4, _age=30)来自哪里?该人在您的输入列表中不存在。