Home > Java > javaTutorial > How Can I Efficiently Compare Two Lists in Java to Find Both Common and Different Elements?

How Can I Efficiently Compare Two Lists in Java to Find Both Common and Different Elements?

DDD
Release: 2024-12-01 01:09:15
Original
597 people have browsed it

How Can I Efficiently Compare Two Lists in Java to Find Both Common and Different Elements?

Comparing Two Lists in Java

In Java, comparing two lists can be achieved through various methods and data structures. This article explores several approaches to compare lists, focusing on finding both similar and different elements.

ArrayList and retainAll Method

Using an ArrayList and the retainAll method allows you to retain only the elements that are contained in both lists.

import java.util.Collection;
import java.util.ArrayList;

public class ListComparison {
    public static void main(String[] args) {
        Collection<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"));
        Collection<String> list2 = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo"));

        list1.retainAll(list2);
        System.out.println("Common elements: " + list1);
    }
}
Copy after login

HashSet and removeAll Method

If you need to find not only common elements but also different ones, using a HashSet and the removeAll method is a suitable approach. A HashSet does not allow duplicates, so it can eliminate repeated values.

import java.util.Collection;
import java.util.HashSet;

public class ListComparison2 {
    public static void main(String[] args) {
        Collection<String> list1 = Arrays.asList("milan", "iga", "dingo", "iga", "elpha", "iga", "hafil", "iga", "meat", "iga", "neeta.peeta", "iga");
        Collection<String> list2 = Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo");

        Collection<String> common = new HashSet<>(list1);
        Collection<String> different = new HashSet<>();
        different.addAll(list1);
        different.addAll(list2);

        common.retainAll(list2);
        different.removeAll(common);

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
Copy after login

Custom Approach

Alternatively, you can create a custom method to compare the lists and return the common and different elements. This provides more flexibility and customization options.

public class CustomListComparison {
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta");
        List<String> list2 = Arrays.asList("hafil", "iga", "binga", "mike", "dingo");

        List<String> common = new ArrayList<>();
        List<String> different = new ArrayList<>();

        for (String element : list1) {
            if (list2.contains(element)) {
                common.add(element);
            } else {
                different.add(element);
            }
        }

        for (String element : list2) {
            if (!list1.contains(element)) {
                different.add(element);
            }
        }

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
Copy after login

By leveraging these techniques, you can efficiently compare two lists in Java, identifying both the common and different elements

The above is the detailed content of How Can I Efficiently Compare Two Lists in Java to Find Both Common and Different Elements?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template