Skip to content

Multiple implementation classes

Classes with multiple interfaces

Some classes in the Java Collections world are like multi-tool gadgets πŸ› οΈ They don’t just fit one role, they satisfy multiple interfaces at once.


🧩 Key Examples

1. LinkedList

LinkedList<String> list = new LinkedList<>();

πŸ‘‰ Implements:

  • List
  • Deque
  • Queue

Meaning:

  • Can behave like a List (index-based)
  • Can act as a Queue (FIFO)
  • Can act as a Deque (both ends operations)

2. ArrayDeque

ArrayDeque<Integer> deque = new ArrayDeque<>();

πŸ‘‰ Implements:

  • Deque
  • Queue

Meaning:

  • Works as Queue
  • Works as Stack (via Deque methods)

3. PriorityQueue

PriorityQueue<Integer> pq = new PriorityQueue<>();

πŸ‘‰ Implements:

  • Queue

But also extends:

  • AbstractQueue

(Not multiple main interfaces like LinkedList, but still part of hierarchy)


4. TreeSet

TreeSet<Integer> set = new TreeSet<>();

πŸ‘‰ Implements:

  • Set
  • NavigableSet
  • SortedSet

Meaning:

  • Normal Set behavior
  • Sorted + navigation methods (floor, ceiling, etc.)

5. HashSet

HashSet<String> set = new HashSet<>();

πŸ‘‰ Implements:

  • Set

Extends:

  • AbstractSet

(Not multiple interfaces, but often confused)


6. TreeMap

TreeMap<String, Integer> map = new TreeMap<>();

πŸ‘‰ Implements:

  • Map
  • NavigableMap
  • SortedMap

7. ConcurrentHashMap

ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();

πŸ‘‰ Implements:

  • Map
  • ConcurrentMap

βš”οΈ Quick Summary Table

Class Interfaces Implemented
LinkedList List, Queue, Deque
ArrayDeque Queue, Deque
TreeSet Set, SortedSet, NavigableSet
TreeMap Map, SortedMap, NavigableMap
ConcurrentHashMap Map, ConcurrentMap

🧠 Interview Insight

  • Most important one β†’ LinkedList (multi-role class)
  • Deque is the reason many classes support both stack + queue behavior
  • Sorted/Navigable interfaces add extra capabilities, not just storage

🧠 Memory Trick

LinkedList = List + Queue + Deque (the Swiss Army knife πŸ› οΈ)