public static void main(String[] args) {
List<IndexRules> list1 = new ArrayList<>();
List<IndexRules> list2 = new ArrayList<>();
list1.add(new IndexRules().setId(1L).setRuleName("a"));
list1.add(new IndexRules().setId(2L).setRuleName("b"));
list1.add(new IndexRules().setId(3L).setRuleName("c"));
list2.add(new IndexRules().setId(7L).setRuleName("7"));
list2.add(new IndexRules().setId(4L).setRuleName("d"));
list2.add(new IndexRules().setId(5L).setRuleName("e"));
//求交集
list1.retainAll(list2);
System.out.println(list1.toString()); // b
//求并集
list1.removeAll(list2);
list1.addAll(list2);
System.out.println(list1.toString()); // a c b e d
//求差集(list1有而list2没有)
list1.removeAll(list2); // a c
System.out.println(list1.toString());
}