Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个hashset,希望只打印两个对象,而不使用迭代器或for循环。但我得到了错误?_Java_Arrays_Collections_Hashset - Fatal编程技术网

Java 我有一个hashset,希望只打印两个对象,而不使用迭代器或for循环。但我得到了错误?

Java 我有一个hashset,希望只打印两个对象,而不使用迭代器或for循环。但我得到了错误?,java,arrays,collections,hashset,Java,Arrays,Collections,Hashset,如何检查 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])); 在集合中存储的是整数值,而不是字符串 这应该适合您: HashSet<Integer> h=new HashSet<>(); h.add(123); h.add(456); h.add(789); h

如何检查

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]));

在集合中存储的是整数值,而不是字符串

这应该适合您:

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 h=newhashset();
h、 增加(123);
h、 增加(456);
h、 增加(789);
h、 增加(757);
h、 增加(989);
System.out.println((新的LinkedList(h)).subList(0,2));

但是HashSet中的顺序没有定义。

首先,不应该使用这样的原始类型。
HashSet
类是一个泛型类,您应该指定typ参数应该是什么

您在示例中所做的是将整数放入哈希集中。因此,您需要将其声明/初始化为
HashSet
,如下所示:

HashSet<Integer> h = new HashSet<>();
看看前两个元素

没有API允许您仅提取前两个元素作为数组,但是您可以通过手动分配数组并迭代集合以提取“前”两个元素来实现这一点。(当然要注意哈希集元素的顺序是未指定的……因此预测将获得哪些元素将是困难的。)



您没有说您遇到了什么错误,但我认为这是一个
ArrayStoreException
。您的
HashSet
包含
Integer
对象,并且您不能将
Integer
放入
String

数组中,错误是什么?我猜这是因为使用的原始类型,您在集合中存储的是
整数
值而不是
字符串
-一个
字符串[]
数组不能包含
整数
对象。但即使您解决了这个问题(例如,通过使用
新整数[2]
),它仍然不会只打印2(事实上,它会打印一些奇怪的东西,比如
[Ljava.lang.Integer;@106d69c
+返回的数组包含所有5个元素),因为在没有迭代器或循环的情况下不能只打印2。它甚至不能使用字符串。@VinayakDwivedi如果有帮助,请随意向上投票和/或接受我的回答。它在内部使用迭代器打印列表。
Integer[] a = h.toArray(new Integer[h.size()]);