如何在Java8中使用lambdas和streams检查integer类型的所有元素是否在给定范围内?
给定int[]A。试图使用数组中的所有元素大于或等于-1000,但不大于1000(包括)。如何做好这件事 我的尝试:如何在Java8中使用lambdas和streams检查integer类型的所有元素是否在给定范围内?,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,给定int[]A。试图使用数组中的所有元素大于或等于-1000,但不大于1000(包括)。如何做好这件事 我的尝试: boolean validIntegers = (Arrays.asList(A)).stream().allMatch(i -> (i >= -1000 && i <= 1000) ); boolean validIntegers=(Arrays.asList(A)).stream().allMatch(i->(i>=-1000&&p>Arr
boolean validIntegers = (Arrays.asList(A)).stream().allMatch(i -> (i >= -1000 && i <= 1000) );
boolean validIntegers=(Arrays.asList(A)).stream().allMatch(i->(i>=-1000&&p>Arrays.asList
接受T..
但是T
作为泛型类型只能表示int[]
这样的对象,而不能表示原语int
。因此T..
表示{int[]}code>
array,它内部包含数组对象,而不是数组元素。因此,您的流包含数组,您不能对数组使用任何比较运算符
要解决此问题并获取存储在int
s数组中的元素流,可以使用
IntStream.of(int…)
- 或者
Arrays.stream(yourArray)
支持double[]
int[]
long[]
和T[]
所以你的代码可能是
boolean validIntegers = IntStream.of(A).allMatch(i -> (i >= -1000 && i <= 1000) );
boolean validIntegers=IntStream.of(A).allMatch(i->)(i>=-1000&&i)或justArrays.stream(A).allMatch(i->)(i>=-1000&&i@Mureinik)感谢您将其包含在回答中。