Prerequisite: ArrayList in Java
Given two ArrayLists, the task is to print all common elements in both the ArrayLists in Java .
Examples:
Input: List1 = ["Hii", "Geeks", "for", "Geeks"], List2 = ["Hii", "Geeks", "Gaurav"] Output: [Hii, Geeks, Geeks] Input: List1 = ["a", "b", "c", "d", "e", "f"], List2 = ["b", "d", "e", "h", "g", "c"] Output:[b, c, d, e]-
Using Collections.retainAll[] method
Syntax:
Collections1.retainAll[Collections2] This method keeps only the common elements of both Collection in Collection1.Approach:
- Get the two ArrayLists.
- Find the common elements in both the Lists using Collection.retainAll[] method. This method keeps only the common elements of both Collection in Collection1.
- The List 1 now contains the common elements only.
Below is the implementation of the above approach:
Program: By modifying the contents of List1.import java.util.ArrayList;
public class GFG {
public static void main[String[] args]
{
ArrayList
list1 = new ArrayList[];
list1.add["Hii"];
list1.add["Geeks"];
list1.add["for"];
list1.add["Geeks"];
System.out.println["List1: "
+ list1];
ArrayList
list2 = new ArrayList[];
list2.add["Hii"];
list2.add["Geeks"];
list2.add["Gaurav"];
System.out.println["List2: "
+ list2];
list1.retainAll[list2];
System.out.println["Common elements: "
+ list1];
}
}
Output: List1: [Hii, Geeks, for, Geeks] List2: [Hii, Geeks, Gaurav] Common elements: [Hii, Geeks, Geeks]
Program 2: By retaining the contents of List1.
import java.util.ArrayList;
public class GFG {
public static void main[String[] args]
{
ArrayList
list1 = new ArrayList[];
list1.add["Hii"];
list1.add["Geeks"];
list1.add["for"];
list1.add["Geeks"];
System.out.println["List1: "
+ list1];
ArrayList
list2 = new ArrayList[];
list2.add["Hii"];
list2.add["Geeks"];
list2.add["Gaurav"];
System.out.println["List2: "
+ list2];
ArrayList
list3 = new ArrayList[list1];
list3.retainAll[list2];
System.out.println["Common elements: "
+ list3];
}
}
Output: List1: [Hii, Geeks, for, Geeks] List2: [Hii, Geeks, Gaurav] Common elements: [Hii, Geeks, Geeks]
-
Using Stream filter
Syntax:
list1.stream[] .filter[list2::contains] .collect[Collectors .toList[]]]; This method returns element if found in second list.Approach:
- First create two ArrayList and add values of list.
- Convert the ArrayList to Stream using stream[] method.
- Set the filter condition to be distinct using contains[] method.
- Collect the filtered values as List using collect[] method. This list will be return common element in both list.
- Print list3
Below is the implementation of the above approach:
Program:
import java.util.*;
import java.util.stream.*;
public class GFG {
public static void main[String[] args]
{
ArrayList
list1 = new ArrayList[];
list1.add["Hii"];
list1.add["Geeks"];
list1.add["for"];
list1.add["Geeks"];
System.out.println["List1: "
+ list1];
ArrayList
list2 = new ArrayList[];
list2.add["Hii"];
list2.add["Geeks"];
list2.add["Gaurav"];
System.out.println["List2: "
+ list2];
System.out.print["Common elements: "];
System.out.println[list1.stream[]
.filter[list2::contains]
.collect[Collectors
.toList[]]];
}
}
Output: List1: [Hii, Geeks, for, Geeks] List2: [Hii, Geeks, Gaurav] Common elements: [Hii, Geeks, Geeks]
-
Naive approach:
- First create two ArrayList and add values of list.
- Create a temporary ArrayList to contain common elements.
- Iterate through the list1 and check if that element is present in the list2 using ArrayList.contains[] method.
- If found, add it to the list3
- Print the common elements from list3
Below is the implementation of the above approach:
import java.util.ArrayList;
public class GFG {
public static void main[String[] args]
{
ArrayList
list1 = new ArrayList[];
list1.add["Hii"];
list1.add["Geeks"];
list1.add["for"];
list1.add["Geeks"];
System.out.println["List1: "
+ list1];
ArrayList
list2 = new ArrayList[];
list2.add["Hii"];
list2.add["Geeks"];
list2.add["Gaurav"];
System.out.println["List2: "
+ list2];
ArrayList
list3 = new ArrayList[];
for [String temp : list1] {
if [list2.contains[temp]] {
list3.add[temp];
}
}
System.out.println["Common elements: "
+ list3];
}
}
Output: List1: [Hii, Geeks, for, Geeks] List2: [Hii, Geeks, Gaurav] Common elements: [Hii, Geeks, Geeks]
Practice Tags :