0

答えが見つからないように見える簡単な質問があります。とてもシンプルで、言語の癖として捉えることができると思います。

 int[] newArray=new int[5];

配列を初期化し、5 つの位置すべてをすべてゼロにします。

newArray[4]=0; 
//versus not assigning any value to specific position newArray[4]

二つは同じものですか?そうでない場合、これら2つを区別する方法は?

配列が作成されたときに自動的に配置されたゼロと、ある時点でプログラムで割り当てられたゼロを区別するにはどうすればよいですか?

私がこれを求めている主な理由は、配列内のランダムな位置に整数値を割り当てるプログラムがあり、0 になる可能性があるためです。検索中に、プログラムによって割り当てられたゼロと初期化されたゼロを知りたいです。

4

4 に答える 4

2

s を配列に入れたので、 のデフォルト値は0intであるため、それらは同等です。0は0に等しいため、2 つを区別することはできません。int

ただし、使用するIntegerと、配列はnulls で初期化されます。その場合、値が設定されているかどうかがわかります。

違いを見分けたい場合は、参照を使用できます。

于 2013-10-08T12:34:29.560 に答える
1

int[] newArray=new int[5]デフォルトでは、すべての要素を 0 に初期化します。

newArray[4]=05番目の要素の値を0に設定します。他のすべての要素はデフォルトで設定されます。したがって、両者に違いはありません。

newArray[4]=10代わりにこのセットを理解する。

これで、配列の内容は{0,0,0,0,10}

于 2013-10-08T12:35:14.247 に答える
1

なんでクズって言うの?Java では、すべての参照とプリミティブに初期デフォルト値があることは明らかです。int の場合は0. 参考までにnull.

于 2013-10-08T12:35:28.763 に答える
0

変数をクラスのメンバーとしてインスタンス化すると、デフォルト値 (数値の場合は 0、オブジェクトの場合は null) が設定されます。ただし、メソッド内でその変数を宣言すると、コンパイラはこの変数にデフォルト値を割り当てないため、設定するまでその内容は定義されません。

したがって、メソッド内で行う場合、同等ではありません;-)

于 2013-10-08T12:37:27.550 に答える