This question already has an answer here:
What is the default Set/List implementation with Collectors in Java 8 Stream API?

(1个答案)


去年关闭。




我有以下代码:
Stream.of(1, 4, 5).collect(Collectors.toSet());

toSet()方法的Javadoc可以读取:

不能保证返回的Set的类型(...)

我看了看toSet()方法的实际实现,乍看之下似乎总是返回HashSet(至少在JDK 11中)。

我知道将来可以更改实现而不会违反合同,但是当前是否存在返回不同于HashSet的实现的情况?

最佳答案

否。JDK source code清楚地表明Collectors.toSet()始终使用HashSet::new。正如您所说,这当然可能会改变。

07-24 09:19