我试图将一个int数组转换为List,并且采取了使用Java 8 Stream的陌生路线,并提出了这个建议。
Arrays.stream(arr).boxed().collect(Collectors.toList());
我仍然很难完全理解这条线,
您几乎从未真正想要LinkedList。乔什·布洛赫(Josh Bloch)发表了一条推文,说“我写了它,但我从不使用它”。
—
安迪·特纳
“为什么
—
安德里亚斯(Andreas)
Collectors.toList()
在这种情况下返回ArrayList<Integer>
”“它可能不返回ArrayList
。该List
实施不确定,所以你不能依靠它返回什么执行。正如javadoc所说:“ 不能保证返回的List 的类型,可变性,可序列化性或线程安全性。”
并且
—
user85421-Banned,
toList()
没有返回ArrayList
or List
,而是返回a Collector
,最终将创建并返回List
-,文档也指出:“ ...对返回的List 的类型,可变性,可序列化性或线程安全性不作任何保证;如果需要对返回的列表进行更多控制,请使用toCollection(Supplier) ....“
R
是结果类型的通用类型。A
收集器的中间累积类型的通用类型。这是收集器工作方式的实现细节。它确实进行了分治(也适用于并行处理),首先将其收集为中间类型。