Java でリスト要素を削除する方法は次のとおりです:
1. 正順の削除
正順に削除します。最大 1 つの要素を削除する場合は、削除後に Break ステートメントを使用してループから抜け出すだけで済みます。複数の要素を削除する必要がある場合、現在のリストのサイズとインデックスの制御に注意を払わない場合次の要素では、java.lang.IndexOutOfBoundsException 例外を簡単に報告できます
public static void remove(List<String> list, String target) { for(int i = 0, length = list.size(); i < length; i++){ String item = list.get(i); if(target.equals(item)){ list.remove(item); length--; i--; } } }
無料の学習ビデオ チュートリアルの推奨事項: Java ビデオ チュートリアル
2. 逆削除
逆削除は前方削除を克服できますリスト サイズと次の要素のインデックスの追加管理が必要になるという問題も、
public static void remove(List<String> list, String target) { for(int i = list.size() - 1; i >= 0; i--){ String item = list.get(i); if(target.equals(item)){ list.remove(item); } } }# を使用すると非常に便利です## 3. イテレータのremove() メソッドの削除 (推奨)
public static void remove(List<String> list, String target) { Iterator<String> iter = list.iterator(); while (iter.hasNext()) { String item = iter.next(); if (item.equals(target)) { iter.remove(); } } }4. CopyOnWriteArrayList のスレッド セーフティ CopyOnWrite コンテナを使用して を削除します。 CopyOnWrite コンテナは、書き込み時にコピーされるコンテナです。一般に理解されているのは、コンテナに要素を追加するとき、現在のコンテナに要素を直接追加するのではなく、まず現在のコンテナをコピーして新しいコンテナを作成し、次にその新しいコンテナに要素を追加するということです。次に、元のコンテナの参照が新しいコンテナを指すようにします。 この利点は、現在のコンテナーは要素を追加しないため、ロックせずに CopyOnWrite コンテナーで同時読み取りを実行できることです。したがって、CopyOnWriteコンテナも読み書き分離の考え方であり、読み書きは別のコンテナです。
public static List<String> remove(ArrayList<String> list, String target) { CopyOnWriteArrayList<String> cowList = new CopyOnWriteArrayList<String>(list); for (String item : cowList) { if (item.equals(target)) { cowList.remove(item); } } return cowList; }注: 1. CopyOnWriteArrayList を使用する利点は、トラバーサル中に新しい要素を削除できるだけでなく追加できることです。 2. 上記のメソッドはパラメーター リストを変更しませんが、呼び出し元に CopyOnWriteArrayList を返します。つまり、CopyOnWriteArrayList は、それを構築するリストを変更しませんが、内部的にリストを維持します。これは支払う必要があります。特にご注意ください。 3. CopyOnWriteArrayList は ArrayList のサブクラスではありませんが、List インターフェイスを実装します。 5. for ループの削除の強化for ループを強化して要素を削除し、ループを継続すると、要素の使用時に同時変更が発生するため、java.util.ConcurrentModificationException 例外が報告されます。 in 例外がスローされますが、削除直後にbreak文を使用してループから抜け出すとエラーが発生しないため、最大1要素の削除に適しています。
public static void remove(List<String> list, String target) { for (String item : list) { if (item.equals(target)) { list.remove(item); break; } } }6. ストリーム API フィルターJava8 で導入されたストリーム API では、List 要素を削除するための、新しくて簡単なメソッド フィルターが導入されました。このメソッドは、元の List オブジェクトを変更せず、新しいオブジェクトを返す必要があります。次の例は、ストリームを使用してコレクション内の「*」要素を削除する方法を示しています。
List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("*"); list.add("c"); list.add("*"); List<String> result = list .stream() .filter(item -> !"*".equals(item)) .collect(Collectors.toList());おすすめの関連記事とチュートリアル:
以上がJavaでリスト要素を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
