> Java > java지도 시간 > 공통 요소와 다른 요소를 모두 찾기 위해 Java의 두 목록을 효율적으로 비교하려면 어떻게 해야 합니까?

공통 요소와 다른 요소를 모두 찾기 위해 Java의 두 목록을 효율적으로 비교하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-01 01:09:15
원래의
596명이 탐색했습니다.

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

Java에서 두 목록 비교

Java에서는 다양한 방법과 데이터 구조를 통해 두 목록을 비교할 수 있습니다. 이 기사에서는 유사한 요소와 다른 요소를 모두 찾는 데 초점을 맞춰 목록을 비교하는 여러 가지 접근 방식을 살펴봅니다.

ArrayList 및 keepAll 메서드

ArrayList 및 keepAll 메서드를 사용하면 다음을 수행할 수 있습니다. 두 목록에 모두 포함된 요소만 유지합니다.

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);
    }
}
로그인 후 복사

HashSet 및 RemoveAll 메소드

공통 요소뿐만 아니라 서로 다른 요소도 찾고 싶다면 HashSet과 RemoveAll 메소드를 사용하는 것이 적합한 접근 방식입니다. HashSet은 중복을 허용하지 않으므로 반복되는 값을 제거할 수 있습니다.

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);
    }
}
로그인 후 복사

사용자 지정 접근 방식

또는 사용자 지정 방법을 만들어 목록과 항목을 비교할 수도 있습니다. 공통 요소와 다른 요소를 반환합니다. 이는 더 많은 유연성과 사용자 정의 옵션을 제공합니다.

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);
    }
}
로그인 후 복사

이러한 기술을 활용하면 Java의 두 목록을 효율적으로 비교하여 공통 요소와 서로 다른 요소를 모두 식별할 수 있습니다

위 내용은 공통 요소와 다른 요소를 모두 찾기 위해 Java의 두 목록을 효율적으로 비교하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿