How to Compare 2 Lists in Java

Java offers a straightforward method to compare two ArrayLists for equality using the equals() method. This method checks if two lists are identical, meaning they have the same size and contain the same elements in the same order.

Understanding ArrayList.equals()

The equals() method provides a reliable way to determine if two ArrayLists are equal. Here’s how it works:

  • Size Comparison: It first checks if both ArrayLists have the same number of elements. If not, they are considered unequal.
  • Element-wise Comparison: If the sizes match, the method then compares each corresponding pair of elements using their respective equals() methods. All pairs must be equal for the lists to be considered equal.

Syntax:

boolean equals(Object o)

Parameters: The equals() method accepts an Object as input, representing the ArrayList to be compared.

Return Value: It returns true if the lists are equal, and false otherwise.

Example: Comparing Two ArrayLists

import java.util.ArrayList;

public class CompareArrayLists {

    public static void main(String[] args) {
        // Create two ArrayLists
        ArrayList<String> list1 = new ArrayList<>();
        ArrayList<String> list2 = new ArrayList<>();

        // Add elements to list1
        list1.add("item 1");
        list1.add("item 2");
        list1.add("item 3");
        list1.add("item 4");

        // Add elements to list2 (same as list1)
        list2.add("item 1");
        list2.add("item 2");
        list2.add("item 3");
        list2.add("item 4");

        // Compare the lists
        boolean areEqual = list1.equals(list2);

        System.out.println("List 1: " + list1);
        System.out.println("List 2: " + list2);
        System.out.println("Are lists equal? " + areEqual); // Output: true


        //Modify list 1
        list1.add("item 5");


         areEqual = list1.equals(list2);
        System.out.println("List 1: " + list1);
        System.out.println("List 2: " + list2);
        System.out.println("Are lists equal? " + areEqual); // Output: false
    }
}

This code snippet demonstrates how to utilize the equals() method to compare two ArrayLists. The initial comparison will return true because both lists contain the same elements in the same order. After adding an element to list1, the subsequent comparison will return false, as the lists are no longer identical.

Time Complexity

The time complexity of the equals() method for ArrayList comparison is O(n), where n is the number of elements in the lists. This is because, in the worst-case scenario, the method needs to compare each element of one list to the corresponding element in the other list. If the lists have different sizes, the comparison terminates early, resulting in a faster execution.

Conclusion

Comparing two lists in Java is efficiently achieved using the built-in equals() method of the ArrayList class. This method offers a simple yet robust way to ensure list equality by checking both size and element-wise correspondence. Remember that element order matters; two lists with the same elements but in a different order will not be considered equal by the equals() method.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *