Java 无法在数组交叉点中从列表转换为数组
我曾经尝试过用这种方式将两个双数组相交Java 无法在数组交叉点中从列表转换为数组,java,android,Java,Android,我曾经尝试过用这种方式将两个双数组相交 public double[] intersect(double[] a, double[] b) { List<double[]> aList = Arrays.asList(a); List<double[]> bList = Arrays.asList(b); aList.retainAll(bList); double[] c = aList.toArray
public double[] intersect(double[] a, double[] b) {
List<double[]> aList = Arrays.asList(a);
List<double[]> bList = Arrays.asList(b);
aList.retainAll(bList);
double[] c = aList.toArray(new double[aList.size()]);
}
不编译
我应该如何解决这个问题该列表#toArray
是一种通用方法,可以通过其签名看到:
<T> T[] toArray(T[] a);
我编辑你的代码是为了有意义
public Double[] intersect(Double[] a, Double[] b) {
List<Double> aList = Arrays.asList(a); // List<double[]> this is bad!
List<Double> bList = Arrays.asList(b);
aList.retainAll(bList);
return aList.toArray(new Double[aList.size()]);
}
公共双[]相交(双[]a,双[]b){
List aList=Arrays.asList(a);//List这太糟糕了!
List bList=Arrays.asList(b);
保留列表(bList);
返回aList.toArray(新的Double[aList.size()]);
}
但是尝试了却没有结果您甚至没有发布编译错误。你并没有帮我们调试这个。你需要列表
,因为原语不能与泛型一起使用。谢谢你的回答。。。没有办法使用双原语吗?如果对象包装器工作得很好,为什么还要使用原语呢?我建议对原语和它们各自对应的对象做一些研究。没有办法使用双原语吗?看看你还有其他的错误!,使用Double[]
,则这是一个有效的代码,例如Double a=array[0]
@AndreaF在Java SDK中没有现成的方法,但是您可以使用一个库。例如,有。
Double[] c = aList.toArray(new Double[aList.size()]);
public Double[] intersect(Double[] a, Double[] b) {
List<Double> aList = Arrays.asList(a); // List<double[]> this is bad!
List<Double> bList = Arrays.asList(b);
aList.retainAll(bList);
return aList.toArray(new Double[aList.size()]);
}