Java 8 流:处理列表中每一对可能的元素
2022-09-03 13:42:41
我有一个任意类的元素。我想循环访问集合,并使用元素和集合中的其他元素(不包括元素本身)执行一些操作。为了简单起见,让它成为:Collection
List<Integer>
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
使用循环,它将是:for
for (Integer i : list) {
for (Integer j : list) {
if (!i.equals(j)) System.out.println(i * 2 + j); //just for example
}
}
问题是如何使用流 API 执行此操作?
这就是我得出的结论:
list.stream().forEach(i ->
list.stream().forEach(j -> {
if (!i.equals(j)) System.out.println(i * 2 + j);
})
);
不过,它看起来并不比嵌套循环更好。有没有更优雅的方式?