内容:
我们有各种各样的鸟类身份。
bird {
power:
...
...
home:
...
...
status:
[0] {age: 2, name: 'John'}
[1] {age: 4, name: 'Gary'}
[2] {age: 10, name: 'David'}
[3] {age: 10, name: 'Jake'}
[4] {age: 8, name: 'Steve'}
phone:
...
...
}
我想做的事:
我想知道那只10岁的小鸟的名字。
但是,有几只鸟的年龄相同。我只想要第一次出现的名字。
所需的最终结果:
我希望它返回的结果是“ David”。
当前结果:
我收到了“大卫”和“杰克”的回信。
我做了什么:
List<BirdStatus<?>> birdStatusesToTake = bird.getStatuses().subList(0, bird.getStatuses().size());
for(BirdStatus birdStatus : birdStatusesToTake){
if (birdStatus.getAge() == 10) {
System.out.println(birdStatus.getName());
}
}
我的问题:
如何仅返回年龄10岁的第一只鸟的名字?
最佳答案
如果您使用的是Java 8或更高版本,则可以这样做:
bird.getStatuses().stream().filter(s -> s.getAge() == 10).findFirst().orElse(null);
在您的代码中使用
break
:for(BirdStatus birdStatus : birdStatusesToTake){
if (birdStatus.getAge() == 10) {
System.out.println(birdStatus.getName());
break; //here you can use return birdStatus.getName();
}
}