从数据库查询列表两个List ,保存了很多T对象,然后如何让两个List进行合并排序并且去除重复项,然后再在新的List里面对对象进行比较,(存在其他属性相同,只有一个int属性不同),对这个属性进行减法操作并合并保存
http://lhkzyz.iteye.com/blog/1682641
http://jxqiujian2008.iteye.com/blog/1530362
A.removeAll(B);removeAll方法用于从列表中移除指定collection中包含的所有元素。
A.addAll(B);addAll方法用于添加collection示例中的所有元素到List列表,添加的顺序是指定 collection 的迭代器返回这些元素的顺序。
:
并集:addAll.
交集:retainAll.
*减法:removeAll
public class SetOpt {
public List intersect(List ls, List ls2) {
List list = new ArrayList(Arrays.asList(new Object[ls.size()]));
Collections.copy(list, ls);
list.retainAll(ls2);
return list;
}
public List union(List ls, List ls2) {
List list = new ArrayList(Arrays.asList(new Object[ls.size()]));
Collections.copy(list, ls);
list.addAll(ls2);
return list;
}
public List diff(List ls, List ls2) {
List list = new ArrayList(Arrays.asList(new Object[ls.size()]));
Collections.copy(list, ls);
list.removeAll(ls2);
return list;
}
public static void main(String[] args) {
SetOpt opt = new SetOpt();
List l1 = new ArrayList();
l1.add(1);
l1.add(2);
l1.add(3);
l1.add(4);
List l2 = new ArrayList();
l2.add(3);
l2.add(4);
l2.add(5);
l2.add(6);
List intersectList = opt.intersect(l1, l2);
System.out.println("交集:");
for (int i = 0; i < intersectList.size(); i++) {
System.out.print(intersectList.get(i) + " ");
}
System.out.println();
List unionList = opt.union(l1, l2);
System.out.println("并集:");
for (int i = 0; i < unionList.size(); i++) {
System.out.print(unionList.get(i) + " ");
}
System.out.println();
List diffList = opt.diff(l1, l2);
System.out.println("差集:");
for (int i = 0; i < diffList.size(); i++) {
System.out.print(diffList.get(i) + " ");
}
System.out.println();
}
}