【发布时间】:2017-08-03 12:13:51
【问题描述】:
假设我有一个 int 数组,我想找到总和为零的所有对。在过去,我会做这样的事情:
public static int count(int[] a) {
int cnt = 0;
int N = a.length;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
if (a[i] + a[j] == 0) {
cnt++;
}
}
}
return cnt;
}
现在我在将其转换为流时遇到了一些问题。
我尝试了以下方法,但得到了 IllegalStateException:
final IntStream stream1 = Arrays.stream(a);
final IntStream stream2 = Arrays.stream(a);
long res = stream1.flatMap(i -> stream2.filter(j -> (j + i == 0))).count();
【问题讨论】:
-
IllegalStateException 不是我的问题。我明白那个。这是我难以将嵌套的 for 转换为流的结果。我的问题是如何转换嵌套的流
-
请编辑问题,在这种情况下我会重新打开
-
@MLeiria 我投票支持重新开放并更改标题
标签: java arrays java-8 java-stream