Java 为什么我在编译时会出现以下错误:“quot;找不到符号-方法toArray();(爪哇)?

Java 为什么我在编译时会出现以下错误:“quot;找不到符号-方法toArray();(爪哇)?,java,Java,以下是相关的代码行: HashSet<Integer> products = new HashSet<Integer>(); ... Integer[] arrProducts = prodDigs.toArray();` HashSet products=newhashset(); ... 整数[]arrProducts=prodDigs.toArray()` 你知道我为什么会在问题中指出错误吗 如果相关的话,我将使用BlueJ作为我的IDE。通过您的小

以下是相关的代码行:

HashSet<Integer> products = new HashSet<Integer>();  
...  
Integer[] arrProducts = prodDigs.toArray();`
HashSet products=newhashset();
...  
整数[]arrProducts=prodDigs.toArray()`
你知道我为什么会在问题中指出错误吗


如果相关的话,我将使用BlueJ作为我的IDE。

通过您的小说明,我猜您想使用to array()将哈希集转换为数组:

要将哈希集转换为整数数组,可以使用:

Integer[] arrProducts = products.toArray(new Integer[products.size()]);
试试Java8的方式

选择1

Integer arrProducts[]=products.stream().toArray(Integer[]::new);
选择2

Integer arrProducts[]=products.stream().toArray(n->new Integer[n]);

prodDigs的类型是什么?此代码不足以识别问题。神童可能不会在上面创建,也可能对代码块不可见。这是打字错误吗?是否应该是
products.toArray()
?欢迎来到Stackoverflow,请阅读。特别注意。确保用正确的标签(编程语言、相关技术等)标记问题。你在发布一个好的问题上投入的精力越多:一个容易阅读、理解的问题,而且这个问题越容易吸引相关的人,你得到帮助的速度就越快。祝你好运是的,是打字错误。它确实应该是
产品。toArray()
。至于prodDigs,它是int[],不应在此行中引用。经验教训:不要在午夜后编写代码。最好先解释一下输入错误,然后解释一下为什么要使用
AbstractCollection.toArray(t[])
而不是
AbstractCollection.toArray()
。啊,发现了输入错误-这不在我的代码中,这是第一次在堆栈溢出上张贴海报的结果,因此,弄乱了@axelhal的格式虽然是的,但我想解释一下为什么使用toArray(T[])而不是toArray()。我想我在阅读了文档之后已经明白了,现在我知道你应该在我的情况下这样做(因为我已经实例化了我的哈希集,不是吗?@AxelH发现了错误,我还不能编辑我的评论,但我必须先去上课,然后才能编辑。这就是为什么你不应该在凌晨1点编码的原因。别担心@ThomasRiley,这些话是写给Adya的,目的是为了改进答案。不是对代码的注释;)你能解释一下为什么这样做吗?我阅读了java.util.Collection文档中的stream()方法,但很难弄清楚它到底做了什么。