JAVA

[JAVA] Collectors.toMap을 사용해 중복 제거

오선지♬ 2025. 1. 20. 20:28
728x90
반응형

[예제] exhlCd를 키로 사용하여 중복을 제거한 다음, exhlNm 값을 추출합니다.

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        // Sample data
        List<ResCrItemListDTO> crItemList = new ArrayList<>();
        crItemList.add(new ResCrItemListDTO("CD001", "Exhibition A"));
        crItemList.add(new ResCrItemListDTO("CD002", "Exhibition B"));
        crItemList.add(new ResCrItemListDTO("CD001", "Exhibition A")); // 중복 항목

        // 중복 제거하여 exhlNm 리스트 생성
        List<String> exhlNmList = crItemList.stream()
                .collect(Collectors.toMap(
                        ResCrItemListDTO::getExhlCd, // Key: exhlCd
                        ResCrItemListDTO::getExhlNm, // Value: exhlNm
                        (existing, replacement) -> existing // 중복 시 기존 값 유지
                ))
                .values()
                .stream()
                .collect(Collectors.toList());

        // 결과 출력
        System.out.println(exhlNmList); // [Exhibition A, Exhibition B]
    }
}
728x90
반응형