What Is a Collection in Java?

What Is a Collection in Java? A Comprehensive Guide with Code Examples

Java Collections is a framework that provides a set of classes and interfaces to handle a group of objects. In simple terms, a collection in Java is an object that can hold references to other objects, and it facilitates operations like storing, retrieving, and manipulating data. Java’s collection framework is one of its most powerful features, and understanding it is crucial for any developer.

In Java, the Collection interface is the root of the collection hierarchy, and it provides methods that are inherited by various types of collections such as List, Set, and Map. Collections are essential when working with groups of data, and they can be manipulated using algorithms provided by the framework.

1. Java Collection Framework Overview

The Java Collection Framework is a unified architecture for representing and manipulating collections. It includes interfaces, classes, and algorithms. The key interfaces of the Java collection framework are:

  • Collection: The root interface of the collection hierarchy.
  • List: Represents an ordered collection (also known as a sequence). It allows duplicate elements.
  • Set: Represents a collection that does not allow duplicate elements.
  • Map: Represents a collection of key-value pairs. Unlike List and Set, it doesn’t extend Collection.

2. Types of Collections in Java

Java Collections are primarily divided into three main categories:

a) List

The List interface is an ordered collection that allows duplicate elements. Elements in a List are indexed, and the insertion order is preserved. Lists allow precise control over the position where each element is inserted. Common List implementations are:

  • ArrayList
  • LinkedList
  • Vector

Example Code: Working with List


import java.util.*;

public class ListExample {
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");
        list.add("Apple");

        // Display list
        System.out.println("List: " + list);
    }
}
        

Output:


List: [Apple, Banana, Cherry, Apple]
        

b) Set

The Set interface represents a collection that does not allow duplicate elements. It models the mathematical set abstraction. The common implementations of the Set interface are:

  • HashSet
  • LinkedHashSet
  • TreeSet

Example Code: Working with Set


import java.util.*;

public class SetExample {
    public static void main(String[] args) {
        Set set = new HashSet<>();
        set.add("Apple");
        set.add("Banana");
        set.add("Apple");  // Duplicate will not be added

        // Display set
        System.out.println("Set: " + set);
    }
}
        

Output:


Set: [Apple, Banana]
        

c) Map

The Map interface represents a collection of key-value pairs. It does not extend the Collection interface. The common implementations of the Map interface are:

  • HashMap
  • LinkedHashMap
  • TreeMap

Example Code: Working with Map


import java.util.*;

public class MapExample {
    public static void main(String[] args) {
        Map map = new HashMap<>();
        map.put("Apple", 10);
        map.put("Banana", 20);
        map.put("Cherry", 30);

        // Display map
        System.out.println("Map: " + map);
    }
}
        

Output:


Map: {Apple=10, Banana=20, Cherry=30}
        

3. Collection Interfaces and Methods

All collection classes implement the Collection interface, and this interface provides various methods for manipulating collections. The key methods in the Collection interface include:

  • add(E e): Adds the specified element to the collection.
  • remove(Object o): Removes the specified element from the collection.
  • size(): Returns the number of elements in the collection.
  • isEmpty(): Checks if the collection is empty.
  • contains(Object o): Checks if the collection contains the specified element.
  • iterator(): Returns an iterator for the collection.

Example Code: Using Collection Methods


import java.util.*;

public class CollectionMethodsExample {
    public static void main(String[] args) {
        Collection collection = new ArrayList<>();
        collection.add("Apple");
        collection.add("Banana");
        collection.add("Cherry");

        // Check if collection contains "Banana"
        if (collection.contains("Banana")) {
            System.out.println("Banana is in the collection.");
        }

        // Remove an element
        collection.remove("Banana");

        // Display collection
        System.out.println("Updated collection: " + collection);
    }
}
        

Output:


Banana is in the collection.
Updated collection: [Apple, Cherry]
        

4. Advanced Collection Operations

Besides the basic operations, Java collections support several advanced operations such as sorting, filtering, and converting between collections. You can also use streams to perform complex operations efficiently.

Example Code: Sorting a List


import java.util.*;

public class SortListExample {
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("Banana");
        list.add("Apple");
        list.add("Cherry");

        // Sort the list
        Collections.sort(list);

        // Display sorted list
        System.out.println("Sorted List: " + list);
    }
}
        

Output:


Sorted List: [Apple, Banana, Cherry]
        

5. Conclusion

The Java Collection Framework is an essential tool for any Java programmer. By understanding the different types of collections like List, Set, and Map, and mastering their various implementations and methods, you can significantly improve your programming skills. Whether you’re developing an application or preparing for interviews, a strong grasp of collections in Java will help you solve problems more effectively and write more efficient code.

© 2024 Tech Interview Guide. All Rights Reserved.

Please follow and like us:

Leave a Comment