1

我试图以这种方式相交 2 个双数组

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

不幸的是这条线

double[] c = aList.toArray(new double[aList.size()]);

不编译

我应该如何解决这个问题

4

2 回答 2

3

TheList#toArray是一个泛型方法,可以通过它的签名看出:

<T> T[] toArray(T[] a);

由于原语不能与泛型一起使用,因此您必须使用包装类Double

Double[] c = aList.toArray(new Double[aList.size()]);
于 2013-09-01T22:14:51.857 回答
0

我编辑您的代码以使其有意义。

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()]);            
}
于 2013-09-01T22:17:59.083 回答