如何通过构造 Double 来初始化 HashSet 值? [复制]

Posted

技术标签:

【中文标题】如何通过构造 Double 来初始化 HashSet 值? [复制]【英文标题】:How to initialize HashSet values by construction for Double? [duplicate] 【发布时间】:2018-06-15 13:16:30 【问题描述】:

我正在关注链接:How to initialize HashSet values by construction?,这可能是一个非常愚蠢的问题,但我没有成功,请指导。

public class Demo 
    public static void main(String[] args) 
        Set<Double> tempSet = new HashSet<Double>();
        tempSet.add(11.0);
        tempSet.add(22.0);

        // Below both lines not working
        Set<Double> tempSet1 = new HashSet<Double>(11.0, 22.0);
        Set<Double> tempSet1 = new HashSet<Double>()11.0, 22.0;
    

【问题讨论】:

Set&lt;Double&gt; tempSet1 = new HashSet&lt;Double&gt;(11.0, 22.0); 无法编译。你想实现什么样的初始化? 有没有办法在一行代码中做到这一点? 【参考方案1】:
Set<Double> tempSet1 = new Hashset<Double>(Arrays.asList(11.0,22.0));

【讨论】:

【参考方案2】:

这个语句没有任何意义:Set&lt;Double&gt; tempSet1 = new HashSet&lt;Double&gt;(11.0, 22.0); 如果你想在一行代码中初始化它们,试试这个:Set&lt;String&gt; h = new HashSet&lt;&gt;(Arrays.asList(new Double[] 11.0,22.0)); 如果有效,请选择作为答案! :D

【讨论】:

【参考方案3】:

根据that question 中的答案,以下是一些示例:

//List initialization by using an array
Set<Double> h = new HashSet<>(Arrays.asList(11.0, 22.0));
//Java 8
Set<Double> set = Stream.of(11.0, 22.0).collect(Collectors.toSet());

【讨论】:

【参考方案4】:

如果你使用的是 Java 9,那么

Set<Double> dblSet5 = Set.of(11.20, 2.0, 32.0, 56.0);

或者

Set<Double> dblSet5 = Set.of(<Array Of Double>);

【讨论】:

以上是关于如何通过构造 Double 来初始化 HashSet 值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Constructor构造方法

BigDecimal

BigDecimal

在构造函数的初始化列表中初始化数组

在复制构造函数中分配和初始化

BigDecimal类