list集合获取相同以及不一样的对象

List<StyleMenuModule> list1 = new ArrayList<>();
        StyleMenuModule s1 = new StyleMenuModule();
        s1.setId(1);
        s1.setMenuId(1);
        list1.add(s1);
        StyleMenuModule s2 = new StyleMenuModule();
        s2.setId(2);
        s2.setMenuId(1);
        list1.add(s2);
        List<StyleMenuModule> list2 = new ArrayList<>();
        StyleMenuModule s3 = new StyleMenuModule();
        s3.setId(2);
        s3.setMenuId(2);
        list2.add(s3);
        StyleMenuModule s4 = new StyleMenuModule();
        s4.setId(3);
        s4.setMenuId(3);
        list2.add(s4);
        List<StyleMenuModule> commonlist = null ;
        List<StyleMenuModule> diffList = new ArrayList<>();
        for(StyleMenuModule styleMenuModule : list1){
            commonlist = (List) CollectionUtils.select(list2, new Predicate() {
                @Override
                public boolean evaluate(Object o) {
                    if (o == null) return false;
                    StyleMenuModule s = (StyleMenuModule) o;
                    if (styleMenuModule.getId().equals(s.getId())){
                        diffList.add(styleMenuModule);
                        return true;
                    }
                    return false;
                }
            });
        }
        System.out.println("相同对象 :"+commonlist.toString());
        list1.removeAll(diffList);
        System.out.println("不一样对象 :"+list1.toString());

 

转载于:https://www.cnblogs.com/zuokun/p/11549349.htmlhtml