2 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
通過使用IntStreamandallMatch如果兩個(gè)數(shù)組a1和a2的長(zhǎng)度相同。如果你會(huì)得到相同的預(yù)期結(jié)果,你仍然可以給出較小尺寸數(shù)組的最大長(zhǎng)度
int[] a2 = { 1, 2, 3 };
int[] a1 = { 0, 1, 2 };
int[] a3 = {0,1};
boolean result = IntStream.range(0, a1.length).allMatch(i -> a1[i] < a2[i]);
// using less than or equal to
boolean result1 = IntStream.range(0, a3.length).allMatch(i -> a3[i] <= a1[i]);
System.out.println(result); //true
System.out.println(result1); //true
以同樣的方式,您也可以anyMatch在反向條件下使用,這樣您就不需要在失敗案例后遍歷整個(gè)流
boolean result2 = IntStream.range(0, a1.length).anyMatch(i->a1[i]>a2[i]);

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用 Guava Streams 壓縮兩個(gè)流并在 Bi-Function 中比較它們。
Stream<Integer> aStream = Stream.of(0, 2, 3);
? ? ? ? Stream<Integer> bStream = Stream.of(1, 1, 3);
? ? ? ? System.out.println(Streams
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .zip(aStream, bStream, (i, j) -> i >= j)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .allMatch(b -> b)
? ? ? ? ? ? ? ? ? ? ? ? );
添加回答
舉報(bào)