无法将整数发送到HashSet构造函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将整数发送到HashSet构造函数相关的知识,希望对你有一定的参考价值。

我试图用int初始化HashSet,但它没有用。

public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] args)
  {
    Set<Integer> a = new HashSet<Integer>(123456);
    a.add(55);
    System.out.println(a);
  }
}

产出:[55]

为什么会发生这种情况,如何将单个int发送给HashSet构造函数?

谢谢!

答案

你传递给Integer构造函数的HashSet代表了Set的初始容量。它没有将该值添加到Set

如果你想用单个元素构造一个Set,你可以使用(在Java 9中):

Set<Integer> a = Set.of(123456);

请注意,这个Set将是不可变的。

如果你想要一个可变的Set,你可以将不可变的Set传递给它的构造函数:

Set<Integer> a = new HashSet<>(Set.of(123456));

或者,在Java 7中:

Set<Integer> myset = new HashSet<>(Arrays.asList(123456));
另一答案

HashSet(int)构造函数允许您指定其初始容量。

如果要初始化其元素,则需要使用HashSet(Colletion)构造函数。例如。:

Set<Integer> a = new HashSet<>(Collections.singleton(123456));

以上是关于无法将整数发送到HashSet构造函数的主要内容,如果未能解决你的问题,请参考以下文章

将参数发送到 Keras Tuner 模型构建器函数

如何将具有值的函数发送到子组件 React?

将标头发送到客户端后无法设置标头-请帮助我在代码中理解这一点

无法将参数发送到 MySQL 存储过程窗口窗体

Node.js,Express:将标头发送到客户端后无法设置标头

如何动态地将变量从一个函数发送到另一个函数