Java Collections Framework – List, Set, Map, and their implementations

Introduction

The Java Collections Framework is a powerful tool set for managing groups of objects. It includes various interfaces like List, Set, and Map, each with multiple implementations catering to different needs. This article delves into these collections, providing detailed examples for practical understanding.

The List Interface

  • Overview: The List interface represents an ordered collection of elements, allowing duplicate entries. Lists are ideal for managing sequences where element order matters.
  • Common Implementations: ArrayList and LinkedList.
  • ArrayList Example:

import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");
        System.out.println(fruits);
    }
}

The Set Interface

  • Overview: The Set interface represents a collection that cannot contain duplicate elements. It’s ideal for situations where you want to ensure uniqueness.
  • Common Implementations: HashSet, LinkedHashSet, and TreeSet.
  • HashSet Example:

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        Set<String> cities = new HashSet<>();
        cities.add("New York");
        cities.add("London");
        cities.add("Paris");
        cities.add("New York"); // Duplicate entry, won't be added
        System.out.println(cities);
    }
}

The Map Interface

  • Overview: The Map interface represents a collection of key-value pairs. It cannot have duplicate keys, and each key maps to exactly one value.
  • Common Implementations: HashMap, LinkedHashMap, and TreeMap.
  • HashMap Example:

import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        Map<String, Integer> employeeAges = new HashMap<>();
        employeeAges.put("John", 30);
        employeeAges.put("Jane", 25);
        employeeAges.put("Emily", 40);
        System.out.println(employeeAges);
    }
}

Conclusion

The Java Collections Framework offers versatile data structures to store and process collections of objects. Understanding the nuances of List, Set, and Map, along with their implementations, is crucial for efficient Java programming. These collections simplify tasks involving data storage, retrieval, and manipulation.