Java での配列からのオブジェクトの削除
Java では、配列は要素の固定長のコレクションです。配列からオブジェクトを削除する必要がある場合、それを行うための簡単な組み込みメソッドはありません。
文字列の配列を考えてみましょう:
String[] foo = { "a", "cc", "a", "dd" };
解決策: 配列リストに移動して戻る
配列からオブジェクトを削除する 1 つの方法は、配列をリストに変換し、リストを変更してから、それを配列に変換して戻します。
List<String> list = new ArrayList<>(Arrays.asList(foo)); list.removeAll(Arrays.asList("a")); foo = list.toArray(foo);
このプロセスでは、元の配列のサイズが保持され、最後に残った要素以降の要素は null に設定されます。
解決策: 新しい配列List
必要なサイズと正確に新しい配列が必要な場合は、次のようにすることができます。以下:
foo = list.toArray(new String[list.size()]);
再利用可能なものの使用
頻繁に使用する場合は、事前定義された空の文字列配列定数を作成することを検討してください:
private static final String[] EMPTY_STRING_ARRAY = new String[0];
その後、削除関数を書き換えることができます次のように:
List<String> list = new ArrayList<> (); Collections.addAll(list, foo); list.removeAll(Arrays.asList("a")); foo = list.toArray(EMPTY_STRING_ARRAY);
または、cynicalman が提案したアプローチを使用することもできます:
foo = list.toArray(new String[list.size()]);
以上がJava 配列からオブジェクトを効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。