参见英文答案 >
Whats is default Set/List implementation with Collectors in Java 8 Stream API? 1个
我有以下代码:
我有以下代码:
Stream.of(1,4,5).collect(Collectors.toSet());
There are no guarantees on the type (…) of the Set returned
我看了一下toSet()方法的实际实现,初看起来总是返回HashSet(至少在JDK 11中).
我知道将来可以在不违反合同的情况下改变实现,但目前是否存在返回不同于HashSet的实现的情况?
解决方法
不,JDK source code清楚地表明Collectors.toSet()总是使用HashSet :: new.如你所说,这当然可能会改变.