据我所知,Java 8 Stream提供了.collect
方法将Stream转换为我们选择的任何集合/数据结构,并且它本质上非常通用。了解Stream可能源自非收集对象/资源。但从使用角度来看,将Stream转换为List / Set非常自然。
Stream已经提供toArray()
方法转换为数组,那么为什么不toList()
和toSet()
?
答案 0 :(得分:5)
因为你不知道List
实现会是什么样的:
事实上,even Collectors.toList()
makes no guarantee:
对返回的List的类型,可变性,可序列化或线程安全性没有任何保证;如果需要更多地控制返回的List,请使用toCollection(Supplier)。
因此,提供通用.toList()
方法适合某些人的某些用法,但它永远不能适合所有人的所有用法。当然,这同样适用于Collectors.toSet()
。
阵列不是问题:你知道你可以用它们做些什么。