LinkedList Operations and Iteration

Demonstrates LinkedList operations including addFirst, addLast, peek, poll, and bidirectional iteration with ListIterator for queue and deque patterns.

JavaData Integrity

Code

snippet
import java.util.*;

public class LinkedListOperations {

    public static void main(String[] args) {
        LinkedList<String> deque = new LinkedList<>();

        deque.addFirst("middle");
        deque.addFirst("start");
        deque.addLast("end");
        System.out.println("Deque: " + deque);

        System.out.println("Peek first: " + deque.peekFirst());
        System.out.println("Peek last: " + deque.peekLast());

        String removed = deque.pollFirst();
        System.out.println("Removed: " + removed);
        System.out.println("After poll: " + deque);

        ListIterator<String> it = deque.listIterator();
        while (it.hasNext()) {
            String element = it.next();
            if (element.equals("middle")) {
                it.set("center");
            }
        }
        System.out.println("After replace: " + deque);

        LinkedList<Integer> numbers = new LinkedList<>();
        for (int i = 1; i <= 5; i++) {
            numbers.add(i);
        }

        Iterator<Integer> desc = numbers.descendingIterator();
        System.out.print("Reversed: ");
        while (desc.hasNext()) {
            System.out.print(desc.next() + " ");
        }
        System.out.println();

        deque.clear();
        System.out.println("Cleared: " + deque);
    }
}