- 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 |