Q32: Why is ArrayDeque preferred over java.util.Stack and LinkedList for stacks/queues?
java.util.Stack: Legacy class extendingVector. Synchronizes all individual operations, introducing unnecessary lock overhead. Obsolete.LinkedList: Allocates a wrapper node object for every element inserted, causing memory GC overhead.ArrayDeque: Resizable array-backed Queue/Deque. Superior CPU cache locality, no thread lock overhead, zero extra node allocation.
Key Takeaways
ArrayDequeis faster and memory-efficient compared toStackandLinkedList.
Knowledge Check
Why is legacy java.util.Stack considered bad practice in modern Java?