リスト内の要素を削除するためにforループを使用することに問題があることを覚えていますが、拡張されたループを使用できます。それから今日、私はそれを使用するときにエラーが報告されたことを発見し、その後科学を普及させるために行った後、これが誤解であることがわかりました。以下でそれについて話しましょう。 。手を差し伸べて、記事の最後に直接ジャンプします。要約を見てください。 。
Javaにループトラバースリストをループし、ループを強化する方法(つまり、一般的にforeachループとして知られている)、およびイテレータートラバーサルを強化する方法は3つあります。
1。ループトラバーサルリストの場合
for(int i = 0; i <list.size(); i ++){if(list.get(i).equals( "del"))lemove(i);}この方法の問題は、要素を削除した後、リストのサイズが変更され、インデックスが変更され、トラバーサル中に特定の要素を見逃すことです。たとえば、最初の要素を削除し、インデックスに従って2番目の要素にアクセスし続ける場合、削除された関係の後の要素が1つずつ移動するため、3番目の要素への実際のアクセスが1つずつ移動します。したがって、この方法は、特定の要素を削除するときに使用できますが、ループ内の複数の要素を削除する場合は適切ではありません。
2。forループを強化します
for(string x:list){if(x.equals( "del"))list.remove(x);}この方法の問題は、要素を削除した後、エラーメッセージがループを続けることによって報告されることです。ただし、削除直後にブレークを使用してジャンプアウトすると、エラーはトリガーされません。
3。イテレータートラバーサル
iterator <string> it = list.iterator(); while(it.hasnext()){string x = it.next(); if(x.equals( "del")){it.remove(); }}この方法は、通常正常にループして削除できます。ただし、反復ターの削除方法を使用する場合、リストの削除方法を使用する場合、上記の概念のモジオ化エクセプトエラーも報告することに注意してください。
要約:
(1)リスト内の特定の要素を削除するためにループする場合は、3つの方法のいずれかを使用できますが、使用するときに上記のさまざまな問題に注意を払う必要があります。
(2)リスト内の複数の要素を削除するためにループする場合は、Iteratorメソッドを使用する必要があります。
Javaのリストで要素を削除する上記の方法の上記の概要は、エディターが共有するすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そして私はあなたがwulin.comをもっとサポートすることを願っています。