「Java」removeメソッドでIteratorのループ処理で要素を削除する

環境
Eclipe 2019
Java 8

書式
default void remove()
removeメソッドは、nextメソッドで呼ばれた要素を削除します。
ベースとなるコレクションから、このイテレータによって最後に返された要素を削除します(オプションの操作)。このメソッドは、next()の呼び出しごとに1回だけ呼び出すことができます。イテレータの動作は、反復処理がこのメソッドの呼出し以外の方法で実行されているときに基になるコレクションが変更された場合は保証されません。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class IteratorDemoEle {
// リスト変数の宣言
public static final String strArr[] = { "東京", "大阪", "福岡", "横浜" };
// 指定要素の宣言
public static final String target = "横浜";
public static void main(String[] args) {
//配列をリストに変換
List<String> lstA = new ArrayList<>(Arrays.asList(strArr));
//リストの要素をループ
Iterator<String> itr = lstA.iterator();
String res;
while (itr.hasNext()) {
res = itr.next();
if (res.equals(target)) {
//要素を削除
itr.remove();
}
}
System.out.println(lstA);
}
}
package com.arkgame.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class IteratorDemoEle { // リスト変数の宣言 public static final String strArr[] = { "東京", "大阪", "福岡", "横浜" }; // 指定要素の宣言 public static final String target = "横浜"; public static void main(String[] args) { //配列をリストに変換 List<String> lstA = new ArrayList<>(Arrays.asList(strArr)); //リストの要素をループ Iterator<String> itr = lstA.iterator(); String res; while (itr.hasNext()) { res = itr.next(); if (res.equals(target)) { //要素を削除 itr.remove(); } } System.out.println(lstA); } }
package com.arkgame.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class IteratorDemoEle {

      // リスト変数の宣言
      public static final String strArr[] = { "東京", "大阪", "福岡", "横浜" };

      // 指定要素の宣言
      public static final String target = "横浜";

      public static void main(String[] args) {
            //配列をリストに変換
            List<String> lstA = new ArrayList<>(Arrays.asList(strArr));
            
            //リストの要素をループ
            Iterator<String> itr = lstA.iterator();
            String res;
            while (itr.hasNext()) {
                  res = itr.next();
                  if (res.equals(target)) {
                        //要素を削除
                        itr.remove();
                  }
            }
            System.out.println(lstA);
      }

}

実行結果
[東京, 大阪, 福岡]

Java

Posted by arkgame