我尝试用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构造函数?
谢谢!
答案 0 :(得分:3)
传递给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));
答案 1 :(得分:1)
HashSet(int)
构造函数允许您指定初始容量。
如果要初始化其元素,则需要使用HashSet(Colletion)
构造函数。 E.g:
Set<Integer> a = new HashSet<>(Collections.singleton(123456));