我正在尝试将HashSet转换为双打数组。是的我有一个主要的方法和类定义,我刚刚包含了我导入的内容以及这个特定函数的代码。
这是出现的错误:
Ass10.java:148: error: no suitable method found for toArray(double[])
rtrn = s.toArray(rtrn);
以下是代码:
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
public static double[] negated(double[] a) {
Set<Double> s = new HashSet<Double>();
for(double x : a) {
s.add(x);
} for(double x : s) {
if(s.contains(-x) == false) {
s.remove(x);
}
}
double[] rtrn = new double[s.size()];
rtrn = s.toArray(rtrn);
return rtrn;
}
答案 0 :(得分:1)
在这种情况下,您无法使用原始数组,因为Java中的数组没有自动装箱。使用Double[]
即可。
答案 1 :(得分:1)
Java集合使用引用类型。函数Collection.toArray(T[] a)
具有通用引用类型的签名。因此,您需要传递引用类型数组而不是原始数组。原始类型double
的相应引用类型是Double
。
Double[] rtrn = new Double[s.size()];
rtrn = s.toArray(rtrn);
答案 2 :(得分:0)
这是一个编译时错误,对吗?尝试使用Double []而不是double []。