2 回答
TA贡献1818条经验 获得超8个赞
通过使用IntStreamandallMatch如果两个数组a1和a2的长度相同。如果你会得到相同的预期结果,你仍然可以给出较小尺寸数组的最大长度
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在反向条件下使用,这样您就不需要在失败案例后遍历整个流
boolean result2 = IntStream.range(0, a1.length).anyMatch(i->a1[i]>a2[i]);
TA贡献1848条经验 获得超2个赞
您可以使用 Guava Streams 压缩两个流并在 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)
);
添加回答
举报