如何仅返回Array中第一次出现的内容

Eag*_*One 1 java loops

语境:

我们有一系列鸟类的状态.

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:
 ...
 ...
}
Run Code Online (Sandbox Code Playgroud)

我想做的事:

我想得到年龄为10岁的鸟的名字.

然而,有几只年龄相同的鸟类.我只想要第一次出现的名字.

必需的最终结果:

我希望它返回的结果是'大卫'.

目前的结果:

我正在回复"大卫"和"杰克".

我做了什么:

List<BirdStatus<?>> birdStatusesToTake = bird.getStatuses().subList(0, bird.getStatuses().size());    

    for(BirdStatus birdStatus : birdStatusesToTake){
      if (birdStatus.getAge() == 10) {  
        System.out.println(birdStatus.getName());  
      }
    }
Run Code Online (Sandbox Code Playgroud)

我的问题:

如何只返回年龄为10岁的第一只鸟的名字?

saj*_*jib 5

如果您使用的是Java 8或更高版本,则可以这样做:

bird.getStatuses().stream().filter(s -> s.getAge() == 10).findFirst().orElse(null);
Run Code Online (Sandbox Code Playgroud)

在您的代码中使用break:

for(BirdStatus birdStatus : birdStatusesToTake){
  if (birdStatus.getAge() == 10) {  
    System.out.println(birdStatus.getName()); 
    break;  //here you can use return birdStatus.getName();
  }
}
Run Code Online (Sandbox Code Playgroud)