Skip to main content

Java Collections Overview

This table provides an overview of key Java Collection interfaces, their common implementations, and usage examples.

InterfaceImplementation ExamplesCommon Methods with ExampleKey Highlights
ListArrayList, LinkedList, Vectorjava List<String> list = new ArrayList<>(); list.add("Apple"); list.get(0); list.size(); Best for ordered collections and index-based access (ArrayList is most common).
SetHashSet, LinkedHashSet, TreeSetjava Set<Integer> set = new HashSet<>(); set.add(1); set.contains(1); set.remove(1); Ensures uniqueness. TreeSet maintains a sorted order.
QueuePriorityQueue, LinkedList, ArrayDequejava Queue<String> queue = new LinkedList<>(); queue.offer("Task 1"); queue.poll(); queue.peek(); Useful for FIFO (Queue) operations.
DequeArrayDeque, LinkedListjava Deque<Integer> deque = new ArrayDeque<>(); deque.addFirst(10); deque.addLast(20); deque.pollFirst(); Useful for double-ended operations.
MapHashMap, TreeMap, LinkedHashMapjava Map<String, Integer> map = new HashMap<>(); map.put("A", 1); map.get("A"); map.containsKey("A"); Works with key-value pairs for quick lookups.
SortedSetTreeSetjava SortedSet<Integer> sortedSet = new TreeSet<>(); sortedSet.add(5); sortedSet.first(); sortedSet.last(); Adds order-specific methods.
SortedMapTreeMapjava SortedMap<String, Integer> sortedMap = new TreeMap<>(); sortedMap.put("A", 1); sortedMap.firstKey(); sortedMap.lastKey(); Adds order-specific methods.
NavigableSetTreeSetjava NavigableSet<Integer> navSet = new TreeSet<>(); navSet.add(10); navSet.lower(10); navSet.pollFirst(); Allows for relative positioning like lower, floor, etc.
NavigableMapTreeMapjava NavigableMap<String, Integer> navMap = new TreeMap<>(); navMap.put("A", 1); navMap.lowerKey("B"); navMap.pollLastEntry(); Allows for relative positioning like lower, floor, etc.
ComparatorCustom logic implementationsjava Comparator<Integer> comp = (a, b) -> a - b; TreeSet<Integer> set = new TreeSet<>(comp); set.add(2); Custom logic to define ordering.
EnumerationLegacy collections (Vector, Hashtable)java Vector<Integer> vector = new Vector<>(); Enumeration<Integer> e = vector.elements(); while (e.hasMoreElements()) { e.nextElement(); } Legacy but useful for backward compatibility.