Sweet__dream 2017-12-12 08:22 采纳率: 0%
浏览 14205
已结题

急~ java中根据某一属性比较两个list集合是否相同

两个集合list1,list2, 只有一个相同的属性(AliasId)

以list1为准,根据AliasId检测list2在list1中是否存在

(1)找出list2中_不存在的_元素并新增该记录

(2)找出list2中_多余的_元素并删除

求代码~

图片说明

图片说明

  • 写回答

13条回答 默认 最新

  • jokingZY 2017-12-13 02:53
    关注
    private boolean checkList(ArrayList<Entity> list1,ArrayList<Entity> entity1) {
        boolean returnFlag = false;
        for (Entity entity : list1) {
            for (Entity entity1 : list2) {
                checkFlag = false;
                // 如果两个集合都是对象的list
                if (entity.getAliasId() == entity1.getAliasId()) {// 如果是int类型比较用==
                                                                                // 如果是string类型换成equal
                    checkFlag = true;
                }
            }
            if (checkFlag) {
                break;
            }
        }
        return returnFlag;//如果是false证明有不同的
    }
    
    private ArrayList<Entity> returnDelList(ArrayList<Entity> list1,ArrayList<Entity> entity1){
        ArrayList<Entity> returnList = new ArrayList<Entity>();
        boolean returnFlag = true;
        for (Entity entity : list1) {
            for (Entity entity1 : list2) {
                // 如果两个集合都是对象的list
                if (entity.getAliasId() == entity1.getAliasId()) {// 如果是int类型比较用==
                                                                                // 如果是string类型换成equal
                    checkFlag = false;
                }
            }
            if (checkFlag) {
                returnDelList.add(entity);
            }
        }
        return returnDelList;
    }
    
    
    
    评论

报告相同问题?