javaの配列のサイズを変更できますか?私は混乱しています。すべてが配列について知っています:配列のサイズを変更することはできません。Javaの配列のサイズを変更できます
このコードを書いた後、私は混乱しています。
class Test {
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8,9,10,11};
int[] array1 = {1,1};
System.out.println("befor : " + array1.length); //I get 2
array1 = array;
System.out.println("intialize : "+array1.length); //I get 11
for(int a : array1) {
System.out.println(a);
}
System.out.println("after : " + array1.length);
}
}
我々は、配列のサイズを変更することができない場合、我々は、ランタイムを取得することになっている:
array1 = array;
では、ArrayIndexOutOfBoundsExceptionエラーをしかし、私はのような出力を得た:
befor : 26
intialize : 11
1
2
3
4
5
6
7
8
9
10
11
after : 11
これは配列のサイズを変更していません。参照に別の値を割り当てるだけです。これは、あなたの電話に保存されているあなたの友人の電話番号を変更するようなものです。実際に*あなたの友人の番号を変更するのではなく、別の電話を呼び出すだけです。 –
あなたは配列を移動していませんでした。あなたは参照を変更しました。 'array1'は' array'の以前に割り当てられた配列を参照します。 –
'array1 = array;'これは 'array1'を' array'を参照するように割り当てます。つまり、彼らは両方とも同じ**配列を指しています。あなたはサイズなどを変更していません。 – displayname