Java의 List 인터페이스는 두 개의 List를 비교하고 목록에서 공통 항목과 누락 항목을 찾을 수 있는 메소드를 제공합니다.
정렬되지 않은 두 목록 비교
두 목록이 동일한지, 즉 동일한 항목을 포함하고 동일한 색인에 나타나는지 확인하려면 다음을 사용할 수 있습니다.
import java.util.Arrays;
import java.util.List;
public class CompareTwoLists {
public static void main(String[] args) {
List<String> listOne = Arrays.asList("a", "b", "c");
List<String> listTwo = Arrays.asList("a", "b", "c");
List<String> listThree = Arrays.asList("c", "a", "b");
boolean isEqual = listOne.equals(listTwo);
System.out.println(isEqual);
isEqual = listOne.equals(listThree);
System.out.println(isEqual);
}
}
출력:
true
true
equals()
에서 볼 수 있듯이 메소드는 목록에서 항목과 위치를 비교합니다.
관련:
- 자바에서 ArrayList를 반복하는 방법
- 목록에서 중복을 제거하는 방법
- Java에서 목록을 배열로 변환하는 방법
정렬된 두 목록 비교
두 목록에 동일한 항목이 포함되어 있습니까?
위치에 관계없이 항목의 관점에서 두 목록이 같은지 비교하려면 sort()
를 사용해야 합니다. Collections()
의 메소드 수업.
예:
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CompareTwoLists {
public static void main(String[] args) {
List<String> listOne = Arrays.asList("b", "c", "a");
List<String> listTwo = Arrays.asList("a", "c", "b");
List<String> listThree = Arrays.asList("c", "a", "b");
Collections.sort(listOne);
Collections.sort(listTwo);
Collections.sort(listThree);
boolean isEqual = listOne.equals(listTwo);
System.out.println(isEqual);
isEqual = listOne.equals(listThree);
System.out.println(isEqual);
}
}
출력:
true
true
두 목록 비교, 차이점 찾기
List
인터페이스는 또한 두 목록 간의 차이점을 찾는 방법을 제공합니다.
removeAll()
메소드는 두 목록을 비교하고 모든 공통 항목을 제거합니다. 남은 것은 추가되거나 누락된 항목입니다.
예를 들어 두 목록을 비교할 때 listOne
및 listTwo
listTwo
에서 누락된 항목을 찾고 싶습니다. 우리는 다음을 사용합니다:
import java.util.ArrayList;
import java.util.Arrays;
public class CompareTwoArrayLists {
public static void main(String[] args) {
ArrayList<Integer> listOne = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
ArrayList<Integer> listTwo = new ArrayList<>(Arrays.asList(1, 2, 4, 5, 6, 7));
listOne.removeAll(listTwo);
System.out.println("Missing items from listTwo " + listOne);
}
}
출력:
Missing items from listTwo [3]
마찬가지로 다음을 사용한 경우:
listTwo.removeAll(listOne);
System.out.println("Missing items from listOne " + listTwo);
우리는 다음을 얻을 것입니다:
Missing items from listOne [6, 7]
두 목록 비교, 공통 항목 찾기
retainAll()
메서드는 두 목록에서 공통적인 항목만 유지합니다. 예:
public class CompareTwoArrayLists {
public static void main(String[] args) {
ArrayList<Integer> listOne = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
ArrayList<Integer> listTwo = new ArrayList<>(Arrays.asList(1, 2, 4, 5, 6, 7));
listOne.retainAll(listTwo);
System.out.println("Common items in both lists " + listOne);
}
}
출력:
Common items in both lists [1, 2, 4, 5]