「Java」removeメソッドでIteratorのループ処理で要素を削除する
環境
Eclipe 2019
Java 8
書式
default void remove()
removeメソッドは、nextメソッドで呼ばれた要素を削除します。
ベースとなるコレクションから、このイテレータによって最後に返された要素を削除します(オプションの操作)。このメソッドは、next()の呼び出しごとに1回だけ呼び出すことができます。イテレータの動作は、反復処理がこのメソッドの呼出し以外の方法で実行されているときに基になるコレクションが変更された場合は保証されません。
使用例
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); } }
実行結果
[東京, 大阪, 福岡]