我从java流的基本原理中得到的是,它适用于不可变对象,并进行操作和收集(如果我们将其作为集合收集)作为新的不可变对象。 我的困惑是,这是否意味着任何对象都有两个对象实例
如果是这样,这是否意味着对于内存是问题的应用程序,流操作可能会产生内存开销。
List.of()
),但中间操作可以创建新的集合。map(x -> x * 2)
会创建一个具有双倍值的新列表。流操作可以通过两种方式引入内存开销:
collect(toList())
)还会创建一个新集合来存储最终结果。减少内存开销:
支持不需要新集合的终端操作:
注意中间操作: