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());