How to find if two lists are exactly the same

In this blog post, I will be explaining how you can check if 2 lists are exactly the same. Consider the following code snippet:

public class CompareLists {public static void main(String[] args) {List<Integer> list1 = Arrays.asList(3,9,5,15,11);List<Integer> list2 = Arrays.asList(3,9,5,15,11);boolean matches = false;if(list1.size() == list2.size()){matches = list1.containsAll(list2);}if(matches)System.out.println("List1 and List2 are the same");elseSystem.out.println("List1 and List2 are different");}}

 

Here, we have 2 lists, list1 and list2. First, we are comparing the size of the lists.  If they are different, then it means that the two lists are different. However, if the sizes are the same, then the code invokes the list.containsAll method. This method returns true if the list on which it is invoked contains all the elements in the list passed in.

So when you run this code, it will print the following output:

List1 and List2 are the same

Now lets try modifying the input lists as follows:

List<Integer> list1 = Arrays.asList(3,9,5,15,11);List<Integer> list2 = Arrays.asList(5,3,11);

The code now prints the following output:

List1 and List2 are different

Now, let’s try modifying the input lists as follows:

List<Integer> list1 = Arrays.asList(3,9,5,15,11);List<Integer> list2 = Arrays.asList(5,3,11,12,15,1);

The code now prints the following output:

List1 and List2 are different

Note that this code does not check for order. So even if the 2 lists contain exactly the same elements but in a different order, it will consider the lists to be the same.

So if you modify the code as follows:

 List<Integer> list1 = Arrays.asList(3,9,5,15,11);List<Integer> list2 = Arrays.asList(5,3,11,15,9);

It will print the following output:

List1 and List2 are the same

Comments

Popular posts from this blog

How to use logging in SpringBoot with code samples

Python While Loop with code samples

How to convert a List to a Set