「Java8」Iteratorでコレクションの指定要素を削除する
環境
JavaSE1.8
Eclipse 2019-12
書式
1.hasNext()
反復処理でさらに要素がある場合にtrueを返します。
2.remove()
ベースとなるコレクションから、このイテレータによって最後に返された要素を削除します(オプションの操作)。
3.E next() 反復処理で次の要素を返します。
戻り値:反復処理での次の要素
使用例
package com.arkgame.study;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class IteratorDemo {
// 配列の定義
private static String cityArr[] = { "東京", "大阪", "福岡", "横浜" };
// 削除要素
private static String DELNAME = "福岡";
public static void main(String[] args) {
// ArrayListのリストを生成
List<String> resLst = new ArrayList<>(Arrays.asList(cityArr));
System.out.println("ループ処理で要素を削除する前");
System.out.println(resLst);
System.out.println("**********************");
// イテレーターをセット
Iterator<String> itr = resLst.iterator();
System.out.println("ループ処理で要素を削除する後");
String element2;
while (itr.hasNext()) {
element2 = itr.next();
if (element2.equals(DELNAME)) {
//removeメソッドで要素を削除する
itr.remove();
}
}
System.out.println(resLst);
}
}
package com.arkgame.study;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class IteratorDemo {
// 配列の定義
private static String cityArr[] = { "東京", "大阪", "福岡", "横浜" };
// 削除要素
private static String DELNAME = "福岡";
public static void main(String[] args) {
// ArrayListのリストを生成
List<String> resLst = new ArrayList<>(Arrays.asList(cityArr));
System.out.println("ループ処理で要素を削除する前");
System.out.println(resLst);
System.out.println("**********************");
// イテレーターをセット
Iterator<String> itr = resLst.iterator();
System.out.println("ループ処理で要素を削除する後");
String element2;
while (itr.hasNext()) {
element2 = itr.next();
if (element2.equals(DELNAME)) {
//removeメソッドで要素を削除する
itr.remove();
}
}
System.out.println(resLst);
}
}
package com.arkgame.study; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class IteratorDemo { // 配列の定義 private static String cityArr[] = { "東京", "大阪", "福岡", "横浜" }; // 削除要素 private static String DELNAME = "福岡"; public static void main(String[] args) { // ArrayListのリストを生成 List<String> resLst = new ArrayList<>(Arrays.asList(cityArr)); System.out.println("ループ処理で要素を削除する前"); System.out.println(resLst); System.out.println("**********************"); // イテレーターをセット Iterator<String> itr = resLst.iterator(); System.out.println("ループ処理で要素を削除する後"); String element2; while (itr.hasNext()) { element2 = itr.next(); if (element2.equals(DELNAME)) { //removeメソッドで要素を削除する itr.remove(); } } System.out.println(resLst); } }
実行結果
ループ処理で要素を削除する前
[東京, 大阪, 福岡, 横浜]
**********************
ループ処理で要素を削除する後
[東京, 大阪, 横浜]