J.O*_*sen 3 java lambda java-8 java-stream
给定int [] A.尝试使用数组中的所有元素大于或等于-1000且不大于1000(包括).怎么做得好?
我的尝试:
boolean validIntegers = (Arrays.asList(A)).stream().allMatch(i -> (i >= -1000 && i <= 1000) );
错误:
Arrays.asList接受,T...但T作为泛型类型只能表示对象int[],而不是原始对象int.所以T...代表{int[]}数组,它包含内部数组对象,而不是数组元素.所以你的流包含数组,你不能在数组上使用任何比较运算符.
要解决此问题并获取存储在ints 数组中的元素流,您可以使用
IntStream.of(int...), Arrays.stream(yourArray)支持double[] int[] long[]和T[].所以你的代码可能是
boolean validIntegers = IntStream.of(A).allMatch(i -> (i >= -1000 && i <= 1000) );