4

ArrayUtils.add(double[], double)ある程度の頻度で使用しています。どうやら私はそれがここで機能しない理由について盲点を持っています。誰か助けてもらえますか?

double[] reliableNeighborValues = new double[1];
for (int j = 0; j < 8; j++) {
    if (pixelInfo[j] > 0) {
        System.out.println("pre add array length "+reliableNeighborValues.length);
        for (int k = 0; k < reliableNeighborValues.length; k++) {
            System.out.println("-- "+reliableNeighborValues[k]);
        }
        ArrayUtils.add(reliableNeighborValues, pixelInfo[j]);
        System.out.println("reliable neighbor "+j+" "+pixelInfo[j]+" array length "+reliableNeighborValues.length);
        for (int k = 0; k < reliableNeighborValues.length; k++) {
            System.out.println("-- "+reliableNeighborValues[k]);
        }
    }
}

出力:

pre add array length 1

-- 0.0

reliable neighbor 0 5.3364882 array length 1

-- 0.0
4

1 に答える 1

15

Java では配列を展開できないため、メソッドは現在破棄している配列の更新されたコピーを返します。

  reliableNeighborValues = 
     ArrayUtils.add(reliableNeighborValues, pixelInfo[j]);

文字列操作関数と同じ扱いです。

于 2012-10-29T11:54:26.247 に答える