ホームページ > Java > &#&チュートリアル > Java 配列からオブジェクトを効率的に削除するにはどうすればよいですか?

Java 配列からオブジェクトを効率的に削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-29 12:59:11
オリジナル
320 人が閲覧しました

How Can I Efficiently Remove Objects from a Java Array?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート