java中的List集合运算

来源:互联网 发布:js点击切换显示隐藏 编辑:程序博客网 时间:2024/05/29 11:02

需求:用户编辑页面的一个列表,程序需要判断出用户删除了哪些、新增了哪些、保留了哪些。
解决方案:

public static void main(String[] args) {        ArrayList<String> listEx = new ArrayList<>();        listEx.add("1111");        listEx.add("2222");        listEx.add("3333");        ArrayList<String> listNow = new ArrayList<>();        listNow.add("3333");        listNow.add("4444");        listNow.add("5555");        // 交集        System.out.println("remain");//      ArrayList<String> remain = new ArrayList<>(listEx);//使用构造方法初始化//      ArrayList<String> remain = (ArrayList<String>) listEx.clone();//使用clone初始化        ArrayList<String> remain = new ArrayList<>();// 保留的记录        remain.addAll(listEx);        remain.retainAll(listNow);        printStr(remain);        // 差集        System.out.println("add");        ArrayList<String> add = new ArrayList<>();// 新增的记录        add.addAll(listNow);        add.removeAll(listEx);        printStr(add);        System.out.println("del");        ArrayList<String> del = new ArrayList<>();// 删除的记录        del.addAll(listEx);        del.removeAll(listNow);        printStr(del);        // 并集        System.out.println("all");        ArrayList<String> all = new ArrayList<>();        all.addAll(listNow);        all.addAll(listEx);        printStr(all);        // 无重复并集        System.out.println("distinctall");        ArrayList<String> distinctall = new ArrayList<>();        distinctall.addAll(listEx);        ArrayList<String> listNow2 = new ArrayList<>();        listNow2.addAll(listNow);        listNow2.removeAll(distinctall);        distinctall.addAll(listNow2);        printStr(distinctall);    }    public static void printStr(List<?> list1) {        System.out.println("-----------------------------------");        for (int i = 0; i < list1.size(); i++) {            System.out.println(list1.get(i));        }    }
0 0
原创粉丝点击