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

List#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 に答える