所以,我明白,你可以有对象流,即Stream<T>与专家原始流,如IntStream,DoubleStream等,其中后者的好处是避免自动装箱.
另外,如果我们以IntStream一个例子为例,它有专门的操作,例如接受的过滤器IntPredicate.
我想知道我是否有一个IntStreamvs a Stream<Integer>,此时你正在节省拳击,例如
intstream.filter(x -> x >= 50).forEach(x -> System.out.println(x));
Run Code Online (Sandbox Code Playgroud)
VS
stream.filter(x -> x >= 50).forEach(x -> System.out.println(x));
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,我没有看到拳击或拆箱.在第二个例子中,拳击/拆箱发生在哪里?因为如果stream是a Stream<Integer>并且过滤器接受了a Predicate<Integer>肯定那么就不需要box/unbox,对于IntConsumervs也是如此Consumer<T>?