Home >Java >javaTutorial >How Can I Efficiently Find Common Elements in Two Java Lists?
Finding Common Elements in Two Lists
Identifying common elements between two lists is a common requirement in programming. Here's a guide on how you can achieve this using Java's Collection API.
Approach 1: Using Collection#retainAll()
The Collection#retainAll() method can be used to modify an existing list to contain only elements that are also present in another list. This approach is efficient and concise.
List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6)); listA.retainAll(listB); // The resulting listA will now contain only common elements: [2]
Approach 2: Creating a New List with Common Elements
To avoid modifying the original lists, you can create a new one that contains only the common elements. This method is slightly less efficient but preserves the integrity of the original lists.
List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6)); List<Integer> common = new ArrayList<>(listA); common.retainAll(listB); // The resulting common list will contain only common elements: [2]
Approach 3: Using Java Streams
Java Streams offer a more functional approach to finding common elements. By utilizing the Collection#contains() method, you can filter out non-common elements using Stream#filter().
List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6)); List<Integer> common = listA.stream().filter(listB::contains).toList(); // The resulting common list will contain only common elements: [2]
Conclusion
These approaches provide different ways to find common elements in two lists. The choice of method depends on specific requirements, such as performance considerations or the need to modify the original lists.
The above is the detailed content of How Can I Efficiently Find Common Elements in Two Java Lists?. For more information, please follow other related articles on the PHP Chinese website!