이 빠른 사용방법(예제)에서는 먼저 일반 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 기반 프로젝트이므로 가져 오기 및 실행이 쉬워야합니다.
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/java-remove-duplicates-from-list
'Java' 카테고리의 다른 글
JUnit5 @RunWith (0) | 2021.04.16 |
---|---|
Java에서 숫자를 N 소수 자릿수로 반올림하는 방법 (0) | 2021.04.16 |
Java Generics – <?> 대 <? 개체 확장> (0) | 2021.04.16 |
Spring REST 컨트롤러에서 HTTP 헤더를 읽는 방법 (0) | 2021.04.15 |
Spring MVC의 커스텀 데이터 바인더 (0) | 2021.04.15 |