Language/JAVA

Stream API

idleday 2024. 2. 27. 18:04

 

 

// 요양기관번호를 key로 하여 병원목록을 map으로 변환
Map<String, EocsMap> hpMap = hplist.stream()
        .collect(Collectors.toMap(hp -> ((ListOrderedMap) hp).get("hpNo").toString(), Function.identity()));

// 방법1. map모두 합치기
List<EocsMap> newlist = csIssuelist.stream()
        .map(i -> {
            i.putAll(hpMap.getOrDefault(i.get("hsptCd"), new EocsMap()));
            return i;
        })
        .collect(Collectors.toList());

map.put("csIssuelist", newlist);

// 방법2. map 요소 중 뽑아서 합치기
List<EocsMap> newlist = csIssuelist.stream()
        .map(i -> {
            EocsMap hp = hpMap.get(i.get("hsptCd"));
            if(!MapUtils.isEmpty(hp)) {
                i.put("verClient", hp.get("verClient"));
                i.put("verServer", hp.get("verServer"));
            }
            return i;
        })
        .collect(Collectors.toList());