配列内の各要素をループしてそれぞれをnullに設定する以外に、Java /処理にネイティブ関数があり、単に配列を空にする(または破棄して、新しい配列として再宣言できるようにする)?
8 に答える
あります
Arrays.fill(myArray, null);
自分で行うのとは異なることを行うわけではありません(すべての要素をループしてnullに設定するだけです)。これを実行するのは純粋なJavaコードであるという点でネイティブではありませんが、それが意図したものである場合はライブラリ関数です。
もちろん、これが「空」の意味である場合、配列のサイズを(ゼロに)変更することはできません。配列のサイズは固定されているため、「新しい」配列の次元を変えたい場合は、他の回答が示すように、参照を新しい配列に再割り当てするのが最善です。さらに良いことに、可変サイズを持つことができるList
のようなタイプを使用してください。ArrayList
参照に割り当てるだけですnull
。(これは だけでなく、どのタイプの配列でも機能しますints
)
int[] arr = new int[]{1, 2, 3, 4};
arr = null;
これにより、配列が「クリア」されます。必要に応じて、その参照に新しい配列を割り当てることもできます。
int[] arr = new int[]{1, 2, 3, 4};
arr = new int[]{6, 7, 8, 9};
メモリ リークが心配な場合は、心配しないでください。ガベージ コレクターは、配列によって残されたすべての参照をクリーンアップします。
もう一つの例:
float[] arr = ;// some array that you want to clear
arr = new float[arr.length];
float[]
これにより、float のデフォルト値に初期化された新しい が作成されます。
array = new String[array.length];
マークのコメントに何か追加したいだけです。追加の割り当てなしで配列を再利用する場合は、それを再度使用して、既存の値を新しい値でオーバーライドします。配列を順番に入力すると機能します。この場合、最後に初期化された要素を覚えて、このインデックスまで配列を使用してください。配列の最後にゴミがあるかどうかは問題ではありません。