본문 바로가기
TIL

컬렉션에서 중복값 찾아내기

by 도쿠니 2022. 3. 30.

Collections.frequency 이용

 

- 컬렉션 안에 있는 객체가 몇번 등장했는지 횟수를 리턴해준다.

 

 

사용법

Collections.frequency(객체를 담고 있는 컬렉션 인스턴스, 중복을 확인할 객체)

 

예시

int[] 배열에 중복값이 존재하면 중복값만 뽑아서 리스트로 만들어라

// int[] nums 가 존재.

// 우선 int[]배열을 리스트로 변환
// Arrays.stream(int 배열) 로 IntStream 으로 변환 -> boxed로 Stream<Integer> -> collect로 List로 변환
ArrayList<Integer> list = (ArrayList<Integer>) Arrays.stream(nums).boxed().collect(Collectors.toList());

ArrayList<Integer> answer =
       (ArrayList<Integer>) list.stream()
               .filter(integer -> Collections.frequency(list, integer) > 1) // 1보다 크다는것은 중복값이 존재한다는 의미로 filter로 중복이 존재하는 값들을 걸러줌
               .distinct() // filter로 거른 후 중복값 제거
               .sorted() // 정렬
               .collect(Collectors.toList()); // 리스트로 변환후 반환

 

 

 

 

댓글