比方說,我有一個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異常是不是我的問題。我明白那個。這是我翻譯嵌套到流的困難的後果。我的問題是如何轉換嵌套在流 – MLeiria
PLZ編輯的問題,然後我會在這種情況下重新打開 – Eugene
@MLeiria我投票重新打開並更改標題 –