ArrayListに配列を挿入しましたが、2番目の配列を挿入した後、最初の配列は2番目の配列と同じになります。ArrayListに異なる配列を挿入する
メインクラス:
public static void main(String[] args) {
ArrayList<int[]> list = new ArrayList<>();
int[] parent = new int[4];
for (int i = 0; i < 2; i++) {
parent[0] = rand(4,1);
parent[1] = rand(6, -2);
parent[2] = rand(2, 1);
parent[3] = rand(-1, -2);
list.add(parent);
}
// to print the arrays of the parent
for (int i = 0; i < 2; i++) {
int[] arr ;
arr = list.get(i);
for (int j = 0; j < arr.length; j++) {
System.out.println("Value "+arr[j]);
}
System.out.println("Next Array");
}
RAND関数//それは私がそれを何度も走っていますが、両方の配列の値がある範囲内でランダムな値
public static int rand(int max,int min)
{
Random rand = new Random();
int value = 0;
return value = rand.nextInt(max + 1 - min) + min;
}
を生成するランダム関数であります同じ。
両方の配列の同じ値を取得し、なぜ私はそれを理解できませんでした。
'parent'の定義を' for'ループに移動します。 – luk2302
'int []'はオブジェクトであり、プリミティブな値ではないためです。同じ配列をリストに2回格納しています。 – Gendarme
これは、最初にリストに追加されたオブジェクトが、2回目に追加されたオブジェクトと同じであるためです。したがって、forループの2回目の繰り返しで変更され、2回印刷されます。 – Rlarroque