반응형

/**
     * 참조형객체를 다루는 List 중복제거
     * @param list
     * @return
     */
    public static List<HashMap<String, String>>

                          removeDuplication(List<HashMap<String, String>> list){
        List<HashMap<String, String>> reList = list;
       
        String pk = "";                  // 참조형 객체의 키값
        int limit  = 1;                     // 배열의 limit 값(중복이 없으면 증가처리)
        boolean isRemove = false; // 중복 여부
        for(int i = reList.size() - 1 ; i >= 0; i-- ){     // 배열의 마지막 값부터 비교시작
            isRemove = false;
            pk = reList.get(i).get("id");                    // 비교대상 객체의 키값저장
            for(int j = 0; j < reList.size() - limit; j++){ // 배열의 처음부터 비교시작
                if(reList.get(j).get("id").equals(pk)){ 

                            // 비교대상 키값과 배열에 존재하는 키값이 일치할 경우
                    reList.remove(i);                          // 중복이므로 대상객체 제거
                    isRemove = true;
                    break;
                }
            }
            if(!isRemove) limit ++;                           // 비교객체가 중복이 아니면 증가
        }
        return reList;
    }

[출처] Hanjoong님

http://blog.naver.com/korn123/30144869615

반응형

+ Recent posts