始める無料で始める

テキストエディタで最後の操作を取り消す

多くのテキストエディタでは、変更履歴をさかのぼって確認し、必要に応じて抜けている単語を挿入できます。ListIterator を使うと、操作のリストを後ろ向きにたどり、必要な箇所に修正を挿入できます。

この演習では、単語のリストを逆順に走査し、"error" を見つけたら、その直前に correction を挿入して、テキストエディタの取り消し操作を再現します。

この演習はコースの一部です

Java の入出力とストリーム

コースを見る

演習の手順

  • textHistory リストの末尾から開始する ListIterator オブジェクトを作成します。
  • textHistory リストで、さらに前の要素があるかを確認します。
  • ひとつ前の要素を取得し、ListIterator を後退させます。
  • 要素 error の前に新しい要素 correction を挿入します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

public class TextEditorUndo {
    public static void main(String[] args) {
        ArrayList textHistory = new ArrayList<>();
        textHistory.add("Hello");
        textHistory.add("error");
        textHistory.add("world");

        // Create ListIterator starting from the end of the list
        ListIterator it = textHistory.____(textHistory.____());

        // Check if more elements are available in reverse order
        while (____.____()) {
        	// Retrieve previous element
            String word = ____.____();
            if (word.equals("error")) {
                // Insert "correction" before "error"
                ____.____("correction");
            }
        }

        System.out.println(textHistory);
    }
}
コードを編集して実行