Java Collection Framework Basics
Java provides a Collection Framework that includes interfaces and classes to handle collections of objects efficiently.
Interfaces in Java Collections
Collection<E>
(Root interface)List<E>
(Ordered, allows duplicates)ArrayList<E>
(Dynamic array)LinkedList<E>
(Doubly linked list)Vector<E>
(Synchronized, like ArrayList)Stack<E>
(LIFO structure)
Set<E>
(No duplicates)HashSet<E>
(Unordered, unique elements)LinkedHashSet<E>
(Ordered, unique elements)TreeSet<E>
(Sorted, unique elements)
Queue<E>
(FIFO structure)PriorityQueue<E>
(Heap-based, priority order)Deque<E>
(Double-ended queue)ArrayDeque<E>
(Resizable array-based deque)
Map<K,V>
(Key-value pairs, no duplicate keys)HashMap<K,V>
(Unordered, allows null key)LinkedHashMap<K,V>
(Maintains insertion order)TreeMap<K,V>
(Sorted by key)Hashtable<K,V>
(Synchronized, no null keys)
Commonly Used Methods
List Methods (ArrayList, LinkedList, Vector, Stack)
list.add(element); // Adds element
list.add(index, element); // Adds element at index
list.remove(index); // Removes element at index
list.get(index); // Gets element at index
list.set(index, element); // Replaces element at index
list.indexOf(element); // Returns index of element
list.contains(element); // Returns true if element exists
list.size(); // Returns size of list
list.isEmpty(); // Returns true if list is empty
list.clear(); // Clears the list
Set Methods (HashSet, LinkedHashSet, TreeSet)
set.add(element); // Adds element
set.remove(element); // Removes element
set.contains(element); // Checks if element exists
set.size(); // Returns size of set
set.isEmpty(); // Checks if set is empty
set.clear(); // Clears the set
Queue Methods (PriorityQueue, Deque, LinkedList)
queue.add(element); // Adds element to queue
queue.offer(element); // Adds element (returns false if full)
queue.remove(); // Removes head element
queue.poll(); // Retrieves and removes head, returns null if empty
queue.peek(); // Retrieves head without removal
queue.element(); // Retrieves head (throws exception if empty)
Deque Methods (ArrayDeque, LinkedList)
deque.addFirst(element); // Adds element at beginning
deque.addLast(element); // Adds element at end
deque.removeFirst(); // Removes first element
deque.removeLast(); // Removes last element
deque.getFirst(); // Retrieves first element
deque.getLast(); // Retrieves last element
Map Methods (HashMap, LinkedHashMap, TreeMap, Hashtable)
map.put(key, value); // Adds key-value pair
map.get(key); // Retrieves value by key
map.remove(key); // Removes key-value pair
map.containsKey(key); // Checks if key exists
map.containsValue(value); // Checks if value exists
map.size(); // Returns size of map
map.isEmpty(); // Checks if map is empty
map.clear(); // Clears the map
map.keySet(); // Returns all keys as a set
map.values(); // Returns all values as a collection
map.entrySet(); // Returns all key-value pairs as a set
Iterating Over Collections
Using for-each
Loop
for (String item : list)
{
System.out.println(item);
}
Using Iterator
Iterator<String> itr = list.iterator();
while (itr.hasNext())
{
System.out.println(itr.next());
}
Using Stream API
list.stream().forEach(System.out::println);
Sorting Collections
Collections.sort(list); // Sorts list in ascending order
Collections.sort(list, Comparator.reverseOrder()); // Descending order
Collections.sort(list, Comparator.comparing(String::length)); // Custom comparator
Utility Methods (Collections Class)
Collections.max(collection); // Returns max element
Collections.min(collection); // Returns min element
Collections.reverse(list); // Reverses list order
Collections.shuffle(list); // Randomly shuffles list
Collections.fill(list, value); // Fills list with value
Collections.frequency(list, item); // Counts occurrences
Collections.binarySearch(list, key); // Searches sorted list