This question already has an answer here:
What is the default Set/List implementation with Collectors in Java 8 Stream API?
(1个答案)
去年关闭。
我有以下代码:
从
不能保证返回的Set的类型(...)
我看了看
我知道将来可以更改实现而不会违反合同,但是当前是否存在返回不同于
(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