020 コレクションフレームワーク(List) 006 解答例

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

public class Main {
    public static void main(String[] args) {
        // 与えられたリスト
        List<String> words = new ArrayList<>(Arrays.asList("Cat", "Dog", "Elephant", "Ant", "Lion", "Tiger"));

        // イテレーターの取得
        Iterator<String> iterator = words.iterator();

        // イテレーターを使用して文字列の長さが3未満の要素を削除
        while (iterator.hasNext()) {
            String word = iterator.next();
            if (word.length() < 3) {
                iterator.remove();
            }
        }

        // 変更後のリストを表示
        System.out.println(words);
    }
}

イテレーターの取得:

Iterator<String> iterator = words.iterator();

iterator メソッドを使用して、リスト words のイテレーターを取得します。

イテレーターを使用して文字列の長さが3未満の要素を削除:

while (iterator.hasNext()) {
    String word = iterator.next();
    if (word.length() < 3) {
        iterator.remove();
    }
}

イテレーターを使用して、各要素の文字列長が3未満であればその要素を削除します。

変更後のリストを表示:

System.out.println(words);

変更後のリストを表示します。

このコードを実行すると、文字列の長さが3未満の要素が削除され、変更後のリストが表示されます。

イテレーターを用いて要素を削除する際の注意

  • イテレーターを使用してリスト内の要素を削除する場合、直接リストから削除すると同時変更の例外が発生する可能性があるため、イテレーターの remove メソッドを使用します。
  • イテレーターを使用して要素を削除すると、リストが同期され、同時変更の問題を回避できます。
  • iterator.remove() を呼び出すことで、イテレーターが最後に返した要素が削除されます。

これにより、イテレーターを介してリスト内の要素を安全に削除することができます。

「020 コレクションフレームワーク」問題集リスト