JAVA

containsKey (리스트의 특정 컬럼으로 그룹핑 맵퍼를 만들자)

쩨비 2021. 4. 17. 14:41
728x90

사용 예시

@Override
    public Map<String, List<exResults>> selectExList(exMaster exMaster) throws BizException {
        List<exResults> list = commonExMapper.selectExList(exMaster);
        if (list != null) {
            Map<String, List<exResults>> listMap = new LinkedHashMap<>();
            list.stream().forEach(obj -> {
                
            	String exGb = "";
            	if(obj.getExDivd().equals("1")) {
            		exGb = obj.getExGrp()+obj.get0001Grp();
            	}else if(obj.getExDivd().equals("3")) {
            		exGb = obj.getExGrp()+obj.getEx2Grp()+obj.getExSchde();
            	}

                if (listMap.containsKey(exGb)) {
                    listMap.get(exGb).add(obj);
                } else {
                    List<exResults> exList = new ArrayList<>();
                    exList.add(obj);
                    listMap.put(exGb, exList);
                }
            });
            return listMap;
        } else {
            return null;
        }
    }

listMap에 exGb의 값을 기준으로 키를 그룹핑해 배열을 만든다.