如何检查
HashSet h=new HashSet();
h.add(123);
h.add(456);
h.add(789);
h.add(757);
h.add(989);
System.out.println( h.toArray(new String[2]));
答案 0 :(得分:1)
首先,您不应该使用像这样的 raw 类型。 HashSet
类是泛型类,应该指定typ参数应该是什么。
您在示例中所做的是将整数放入hashset中。因此,您需要将其声明/初始化为HashSet<Integer>
,如下所示:
HashSet<Integer> h = new HashSet<>();
然后,将内容提取到数组中,您应该这样做:
Integer[] a = h.toArray(new Integer[h.size()]);
并查看前两个元素。
没有API可以让您只将前两个元素作为数组提取,但是您可以通过手动分配数组并迭代该集合来拉出“第一个”两个元素来实现这一点。 (当然注意到HashSet的元素的顺序是未指定的 ...所以预测哪些元素将会变得困难。)
您没有说出您遇到的错误,但我希望它是ArrayStoreException
。您的HashSet
包含Integer
个对象,但您无法将Integer
放入String
数组中。
答案 1 :(得分:0)
您在Set not Strings中存储Integer值
这应该适合你:
HashSet<Integer> h=new HashSet<>();
h.add(123);
h.add(456);
h.add(789);
h.add(757);
h.add(989);
System.out.println((new LinkedList<T>(h)).subList(0, 2));
但是HashSet中的顺序并不是明确的。