【问题标题】:How to initialize HashSet values by construction for Double? [duplicate]如何通过构造 Double 来初始化 HashSet 值? [复制]
【发布时间】: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}); 无法编译。你想实现什么样的初始化?
  • 有没有办法在一行代码中做到这一点?

标签: java


【解决方案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>);
        

        【讨论】:

          猜你喜欢
          • 2011-01-03
          • 2020-05-31
          • 2015-01-05
          • 2021-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多