他の回答から、作成後に配列のサイズを変更することはできないことをおそらく理解できるでしょう。あなたが言う時
int [] A = new int[5];
あなたが本当に言っているのは、「A」というオブジェクトがあり、そこに整数とサイズ 5 の配列を入れたいということです。その配列を変更することはできません。ただし、次のように言うだけで、整数とサイズ3の新しい配列を「A」に入れることができます。
A = new int[3];
これを行うと (他の参照がない場合)、古い配列はガベージ コレクターによって破棄されます。古い配列にあったものを新しい配列にコピーするだけで完了です。これで長さも変わります。
ここに小さなテストコードがあります:
int [] a = new int[5];
a[0] = 2;
a[1] = 5;
a[2] = 1;
a[3] = 6;
a[4] = 0;
println(a.length); // prints 5
int [] temp = new int[3];
System.arraycopy(a,0,temp,0,temp.length);
a = temp;
temp = null;
println(a.length); //prints 3
これは、サイズを直接変更できる ArrayList を使用してはるかにエレガントに行うことができるため、醜いアプローチと見なされます。
技術的には、これは配列を新しい配列にコピーしていますが、探しているものかもしれません