본문 바로가기
Language/Java

Java8 List 중복값만 골라내기

by 김짜이상 2020. 8. 9.

  • List의 값들을 key/value 쌍인 Map으로 변환한다.
  • Map 에서 value가 1개 이상인 Key값들을 Set에다가 저장.
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * @author zzai_sang
 * @version 0.1.0
 * @since 2020/07/14
 */
public class DuplicateElement {

    public static void main(String[] args) {

        final List<String> nameList = Arrays.asList("김상재", "김상재", "김상재", "짜이상", "상짜이", "짜이상");

        final Set<String> dupRemoveSet = nameList
                .stream()
                .collect(
                        Collectors.groupingBy(Function.identity(), Collectors.counting())
                ).entrySet().stream()
                .filter(v -> v.getValue() > 1)
                .map(Map.Entry::getKey)
                .collect(Collectors.toSet());

        System.out.println(nameList);
        System.out.println(dupRemoveSet);

    }
}

 

  • 결과
[김상재, 김상재, 김상재, 짜이상, 상짜이, 짜이상]
[짜이상, 김상재]
반응형

'Language > Java' 카테고리의 다른 글

Java 프로그램 실행 과정 (JVM 동작 원리)  (0) 2022.04.17
GC 동작 원리  (0) 2022.04.17
객체 지향 설계 5가지 원칙 (SOLID)  (0) 2021.12.26
JVM 메모리 구조  (0) 2021.12.11
Java8 객체 List 에서 중복값 제거  (0) 2020.07.31