이 빠른 사용방법(예제)에서는 먼저 일반 Java를 사용한 다음 Guava를 사용한 다음 마지막으로 Java 8 Lambda 기반 솔루션을 사용하여 List에서 중복 요소를 정리하는 방법 을 보여줍니다 .

이 기사는 Baeldung 대한 " Java – Back to Basic "시리즈의 일부입니다.

1. 일반 Java를 사용하여 List에서 중복 제거

표준 Java Collections Framework를 사용하여 List에서 중복 요소를 제거하는 것은 Set를 통해 쉽게 수행됩니다 .

public void 
  givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect() {
    List<Integer> listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0);
    List<Integer> listWithoutDuplicates = new ArrayList<>(
      new HashSet<>(listWithDuplicates));

    assertThat(listWithoutDuplicates, hasSize(4));
}

보시다시피 원래 List은 변경되지 않습니다.

2. Guava를 사용하여 List에서 중복 제거

Guava를 사용하여도 동일한 작업을 수행 할 수 있습니다.

public void 
  givenListContainsDuplicates_whenRemovingDuplicatesWithGuava_thenCorrect() {
    List<Integer> listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0);
    List<Integer> listWithoutDuplicates 
      = Lists.newArrayList(Sets.newHashSet(listWithDuplicates));

    assertThat(listWithoutDuplicates, hasSize(4));
}

그리고 다시 원래 List은 변경되지 않습니다.

3. Java 8 Lambda를 사용하여 List에서 중복 제거

마지막으로 Java 8에서 Lambda를 사용하는 새로운 솔루션을 살펴 보겠습니다. equals () 메소드에 의해 반환 된 결과에 따라 별개의 요소로 구성된 스트림을 반환하는 Stream API distinct () 메소드사용할 것입니다 .

public void 
  givenListContainsDuplicates_whenRemovingDuplicatesWithJava8_thenCorrect() {
    List<Integer> listWithDuplicates = Lists.newArrayList(1, 1, 2, 2, 3, 3);
    List<Integer> listWithoutDuplicates = listWithDuplicates.stream()
     .distinct()
     .collect(Collectors.toList());
}

그리고 우리는 그것을 가지고 있습니다 – List에서 모든 중복 항목을 정리하는 3 가지 빠른 방법.

4. 결론

이 기사는 Plain Java, Google Guava 및 Java 8을 사용하여 List에서 중복 항목을 얼마나 쉽게 제거 할 수 있는지 보여줍니다.

이러한 모든 예제 및 스 니펫의 구현은 GitHub 프로젝트 에서 찾을 수 있습니다 . 이것은 Maven 기반 프로젝트이므로 가져 오기 및 실행이 쉬워야합니다.