[java] distinct() 메서드를 이용한 중복 제거 방법
Java 8부터 Stream
클래스에서 제공하는 distinct()
메서드를 통해 중복된 요소를 제거할 수 있습니다. 이 메서드를 사용하면 간편하게 중복 요소를 제거하고 유니크한 요소만 남길 수 있습니다.
사용법
distinct()
메서드는 중복 요소가 제거된 새로운 스트림을 반환합니다. 따라서 이를 사용하기 위해서는 먼저 스트림을 생성해야 합니다.
다음은 distinct()
메서드를 사용하여 중복을 제거하는 간단한 예제입니다.
import java.util.Arrays;
import java.util.List;
public class DistinctExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 2, 3, 1, 4, 5);
List<Integer> distinctNumbers = numbers.stream()
.distinct()
.toList();
System.out.println("Distinct numbers: " + distinctNumbers);
}
}
위 코드에서는 Stream
의 distinct()
메서드를 이용하여 numbers
리스트에서 중복 요소를 제거합니다. 그리고 toList()
메서드를 호출하여 새로운 리스트를 생성합니다.
출력결과
실행 결과는 다음과 같습니다.
Distinct numbers: [1, 2, 3, 4, 5]
위 예제에서는 중복된 숫자 2와 3이 제거되고 유니크한 숫자만을 포함한 새로운 리스트가 생성되었습니다.
주의사항
distinct()
메서드를 사용할 때 주의해야 할 점이 있습니다. distinct()
메서드는 중복을 제거하기 위해 hashCode()
와 equals()
메서드를 사용합니다. 따라서 중복 제거의 기준이 되는 객체는 hashCode()
와 equals()
를 제대로 구현해야 올바른 결과를 얻을 수 있습니다.
만약 사용자 정의 클래스를 사용한다면 hashCode()
와 equals()
를 적절히 오버라이드하여 중복을 올바르게 제거할 수 있도록 해야 합니다.