java – Collectors.toSet()中的Set实现?

参见英文答案 > Whats is default Set/List implementation with Collectors in Java 8 Stream API?                                    1个
我有以下代码

Stream.of(1,4,5).collect(Collectors.toSet());

从toOff()方法Javadoc开始,可以读取:

There are no guarantees on the type (…) of the Set returned

我看了一下toSet()方法的实际实现,初看起来总是返回HashSet(至少在JDK 11中).

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

解决方法

不,JDK source code清楚地表明Collectors.toSet()总是使用HashSet :: new.如你所说,这当然可能会改变.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...