Batalkan aksi terakhir di editor teks
Banyak editor teks memungkinkan pengguna menelusuri perubahan secara mundur dan menyisipkan kata yang terlewat saat diperlukan. Dengan menggunakan ListIterator, Anda dapat bergerak mundur melalui daftar aksi dan menyisipkan koreksi jika diperlukan.
Dalam latihan ini, Anda akan menelusuri daftar kata secara terbalik, dan jika Anda menemukan "error", Anda akan menyisipkan correction sebelum itu, mensimulasikan operasi undo di editor teks.
Latihan ini merupakan bagian dari kursus
Input/Output dan Stream di Java
Instruksi latihan
- Buat objek
ListIteratoruntuk daftartextHistory, mulai dari akhir. - Periksa apakah masih ada elemen sebelumnya yang tersedia dalam daftar
textHistory. - Ambil elemen sebelumnya dan gerakkan
ListIteratorke belakang - Sisipkan elemen baru
correctionsebelum elemenerror
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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);
}
}