获取与谓词匹配的元素的索引

Rol*_*and 2 java collections java-stream

我知道如何通过谓词查找列表的第一个元素: Java 8通过谓词查找第一个元素

有没有一种简单的方法来获取该元素的索引?

编辑:链接的问题确实提供了答案,但是由于其表达方式,我在搜索时找不到它。因此,我宁愿保留这个问题。

Eug*_*ene 5

如果我理解正确,那就是您需要的经典案例IntStream;但这显然仅适用于列表。

IntStream.range(0, yourList.size())
   .filter(i -> yourList.get(i)... your filter condition)
   .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

  • 如果您真的只想要第一个索引,请使用`findFirst()`而不是`collect(...)`。这只会执行过滤器,直到找到第一个匹配项为止。 (3认同)