Comparing two ArrayLists could be a tricky task for beginner programmers. On this page, we are going to share some of the best ways to compare two ArrayLists.
Compare ArrayLists using Equal():
You can easily compare the two ArrayLists by simply using the equals()
method. This method returns a boolean value(True or False). So, if the result is true, the ArrayLists are equal; otherwise, they are not equal.
Source Code:
import java.util.ArrayList;
public class ComparingArrayLists { //using equals()
public static void main(String[] args) {
//initializing two array lists
ArrayList < String > list1 = new ArrayList < > ();
ArrayList < String > list2 = new ArrayList < > ();
//storing data in list 1
list1.add("Java");
list1.add("Python");
list1.add("C++");
//storing data in list 2
list2.add("Java");
list2.add("Python");
list2.add("C++");
//printing both lists
System.out.println("List 1:" + list1);
System.out.println("List 2:" + list2);
//comparing both lists
if (list1.equals(list2)) {
System.out.println("Lists are equal");
} else {
System.out.println("Lists are not equal");
}
//adding another element to list 1
list1.add("HTML");
//comparing both lists again
if (list1.equals(list2)) {
System.out.println("Lists are equal");
} else {
System.out.println("Lists are not equal");
}
}
}
Output:
run:
List 1:[Java, Python, C++]
List 2:[Java, Python, C++]
Lists are equal
Lists are not equal
BUILD SUCCESSFUL (total time: 5 seconds)
Compare Arraylists using retainAll():
In case you want to compare two ArrayLists with respect to common elements, then you should be trying retainAll()
method. It will return all common elements between two ArrayLists.
Source code:
import java.util.ArrayList;
public class ComparingArrayLists {//using retainAll()
public static void main(String[] args) {
//initializing two array lists
ArrayList list1 = new ArrayList<>();
ArrayList list2 = new ArrayList<>();
//storing data in list 1
list1.add("Mike");
list1.add("Sara");
list1.add("John");
//storing data in list 2
list2.add("Mike");
list2.add("Sara");
list2.add("Diaz");
list2.add("Sam");
//printing both lists
System.out.println("List 1:" + list1);
System.out.println("List 2:" + list2);
//it will return common elements
list2.retainAll(list1);
//printing common elements
System.out.println("Common elements are: " + list2);
}
}
Output:
run:
List 1:[Mike, Sara, John]
List 2:[Mike, Sara, Diaz, Sam]
Common elements are: [Mike, Sara]
BUILD SUCCESSFUL (total time: 14 seconds)
Compare ArrayLists using contains():
An alternate way of retainAll()
is to compare the elements of the ArrayLists using contains()
method. The contains()
method checks whether List 1 has the same element as List 2 at the same index.
Source code:
import java.util.ArrayList;
import java.util.Arrays;
public class ComparingArrayLists {//using contains()
public static void main(String[] args) {
//initializing two array lists
ArrayList list1 = new ArrayList<>(Arrays.asList("Apple", "Banana", "Peach", "Apricot"));
ArrayList list2 = new ArrayList<>(Arrays.asList("Cabbage", "Carrots", "Cucumber", "Banana"));
//printing both lists
System.out.println("List 1:" + list1);
System.out.println("List 2:" + list2);
//Finding similar items in both lists
int i=0;
while(i<list1.size() && i<list2.size()){
if(list2.contains(list1.get(i))){
System.out.println(list1.get(i) + " is in both lists");
}
i++;
}
}
}
Output:
run:
List 1:[Apple, Banana, Peach, Apricot]
List 2:[Cabbage, Carrots, Cucumber, Banana]
Banana is in both lists
BUILD SUCCESSFUL (total time: 7 seconds)
References:
Happy Learning 🙂