Collections

List

  • A List is an ordered collection of elements.

  • Elements can be accessed by their index.

  • Java provides several implementations of the List interface:

    • ArrayList: A resizable array that is backed by an array.

    • LinkedList: A doubly-linked list that allows for fast insertion and deletion at the beginning or end of the list.

    • Vector: Similar to ArrayList but is synchronized, which makes it thread-safe.

  • Example:

List<String> names = new ArrayList<>();
names.add("John");
names.add("Jane");
names.add("Joe");
System.out.println(names.get(0));

Set

  • A Set is an unordered collection of unique elements.

  • Java provides several implementations of the Set interface:

    • HashSet: Uses a hash table to store the elements, which provides constant time performance for basic operations.

    • TreeSet: Stores the elements in a sorted order, which provides faster searching.

    • LinkedHashSet: Maintains the insertion order of the elements, which provides predictable iteration order.

  • Example:

Set<String> names = new HashSet<>();
names.add("John");
names.add("Jane");
names.add("Joe");
System.out.println(names.contains("John"));

Map

  • A Map is a collection of key-value pairs.

  • Keys must be unique, but values can be duplicated.

  • Java provides several implementations of the Map interface:

    • HashMap: Uses a hash table to store the elements, which provides constant time performance for basic operations.

    • TreeMap: Stores the elements in a sorted order based on the keys.

    • LinkedHashMap: Maintains the insertion order of the elements, which provides predictable iteration order.

  • Example:

Map<String, Integer> scores = new HashMap<>();
scores.put("John", 10);
scores.put("Jane", 20);
scores.put("Joe", 30);
System.out.println(scores.get("Jane"));

Queue

  • A Queue is a collection that represents a waiting line.

  • Elements are added to the end of the queue and removed from the front.

  • Java provides several implementations of the Queue interface:

    • LinkedList: A doubly-linked list that allows for fast insertion and deletion at the beginning or end of the list.

    • PriorityQueue: A queue that orders its elements according to their natural order or a specified comparator.

  • Example:

Queue<String> queue = new LinkedList<>();
queue.add("John");
queue.add("Jane");
queue.add("Joe");
System.out.println(queue.peek());

Stack

  • A Stack is a collection that represents a stack of items.

  • Elements are added to the top of the stack and removed from the top.

  • Java provides a Stack class that implements the Stack interface.

  • Example:

Stack<String> stack = new Stack<>();
stack.push("John");
stack.push("Jane");
stack.push("Joe");
System.out.println(stack.pop());

Collection utilities

  • Java provides several utility classes for working with collections:

    • Collections: Provides methods for sorting, searching, and manipulating collections.

    • Arrays: Provides methods for working with arrays, such as sorting and searching.

  • Example:

List<String> names = Arrays.asList("John", "Jane", "Joe");
Collections.sort(names);
System.out.println(names);

Last updated