在Java 8中,IntStream
,DoubleStream
或LongStream
优于常规流吗?
这些线程是否具有高性能或可用性?
答案 0 :(得分:3)
Stream<Integer>
等必须使用装箱的值(Integer
而不是原始的int
),这将占用更多的内存,并且通常需要进行大量装箱/拆箱操作(取决于您的代码) )。为什么只Int/Double/Long
?仅仅是因为人们期望它们被最频繁地使用。
对OptionalInt
和朋友以及所有功能界面都相同。
对于集合(列表/地图/集合),出于相同的原因,有许多第三方库提供原始专业化。确实存在更严重的问题,因为使用流不需要(通常; sorted()
是反示例),不需要在内存中存储许多值。