本人新手,想请教一下两个List<T>比较合并等问题(java)

从数据库查询列表两个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();   
    }   

}