我有一个Integer数组如下。
Integer[] nums = new Integer[]{1,2,3};
Integer inputNum = 3;
我想检查这里是否有3个。
尝试使用下面的代码,但它并不适用,Integer []。
IntStream.of(nums).anyMatch(num -> num == inputNum);
IntStream java.util.stream.IntStream.of(int ... values)
Java 8有没有更好的方法?
答案 0 :(得分:2)
您目前有一个Integer[]
,因此您可以使用Stream.of
代替IntStream.of
。
IntStream.of
仅采用原始整数,而Stream.of
则用于引用类型。
boolean isPresent = Stream.of(nums).anyMatch(num -> Objects.equals(num, inputNum));
但我更倾向于在这种情况下使用Arrays.stream
而不是理想世界中的XXX.of
方法,只有在您要提供显式值时才应使用它们。
boolean isPresent = Arrays.stream(nums).anyMatch(num -> Objects.equals(num, inputNum));