배열에 있는 중복값을 삭제하는 방법을 알아보겠습니다.
중복을 삭제하는 방법으로 Stream,distinct을 사용하겠습니다.
distinct의 샘플을 보면서 사용 방법을 확인해보겠습니다.
중복 삭제 샘플
리스트의 중복 삭제는 distinct하고나서 collect 하는 것으로 가능합니다.
import java.util.List;
import java.util.Arrays;
import java.util.stream.Collectors;
public class collectionTest{
public static void main(String args[]){
// 값이 중복 있도록 1을 2개 설정
List<Integer> list = Arrays.asList(1, 1, 2, 3, 4, 5);
//distinct().collect를 사용하여
// 결과 [1, 2, 3, 4, 5]
List<Integer> ans = list.stream().distinct().collect(Collectors.toList());
System.out.println(ans);
}
}
결과
[1, 2, 3, 4, 5]
리스트를 초기화 할때 값 1을 중복으로 대입했습니다.
그리고 리스트 결과를 출력하기 전에 distinct을 사용해 중복 값을 삭제하도록 했습니다.
출력된 결과를 보면 1이 하나만 출력된 것을 확인 할 수 있습니다.
중복값을 제거하지 않고 존재하는지 체크하는 방법을 간단하게 살펴 보겠습니다.
중복 체크 확인 샘플
중복 하는 값이 있는지 체크만 하는 경우에는 다음과 같이 사용할 수 있습니다.
import java.util.List;
import java.util.Arrays;
import java.util.HashSet;
import java.util.stream.Collectors;
public class collectionTest{
public static void main(String args[]){
//값이 중복 있도록 1을 2개 설정
List<Integer> list = Arrays.asList(1, 1, 2, 3, 4, 5);
//중복 체크
//결과를 변수 ans에 반환
boolean ans = (list.size() == new HashSet<>(list).size());
System.out.println(ans);
}
}
결과
false
[1, 1, 2, 3, 4, 5]
결과값으로 false가 반환되었습니다.
리스트에 중복값이 존재하면 false를 반환합니다.
중복값이 없으면은 true를 반환합니다.
중복값을 삭제하는 처리는 없기 때문에 리스트에 값은 그대로 존재합니다.
댓글