「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); } }
実行結果
ループ処理で要素を削除する前
[東京, 大阪, 福岡, 横浜]
**********************
ループ処理で要素を削除する後
[東京, 大阪, 横浜]