如何在满足某些条件的流中找到第二个元素?

时间:2016-12-27 13:53:09

标签: java lambda java-8

我想显示名称以' s'开头的流的第二个元素。

我试过了:

employees.stream()
         .filter(e -> e.getName().charAt(0) == 's')
         .findAny()
         .ifPresent(e -> System.out.println("Employee : " + e));

但是,当我使用findAny()时,它会返回流中的第一个元素(与findFirst()相同),我想要第二个元素。

1 个答案:

答案 0 :(得分:10)

您可以在过滤器后添加skip(1)来跳过第一场比赛:

employees.stream()
         .filter(e -> e.getName().charAt(0) == 's')
         .skip(1)
         .findAny()
         .ifPresent(e -> System.out.println("Employee : " + e));