【发布时间】:2014-11-28 12:21:53
【问题描述】:
我正在尝试使用 Java 8 流和 lambda 表达式进行顺序搜索。这是我的代码
List<Integer> list = Arrays.asList(10, 6, 16, 46, 5, 16, 7);
int search = 16;
list.stream().filter(p -> p == search).forEachOrdered(e -> System.out.println(list.indexOf(e)));
Output: 2
2
我知道list.indexOf(e) 总是打印第一次出现的索引。如何打印所有索引?
【问题讨论】:
-
我不认为你可以用这种结构做到这一点。过滤后,您就丢失了索引信息。如果您在此之后确实打印了索引,您将在过滤列表中获得索引。
-
@Tom 给定帖子中的查询是什么。当我尝试这个在查询时给出编译错误。