且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Java 集合并交补

更新时间:2022-09-18 08:43:04

阅读目录

回到顶部

示例

Java 集合并交补
package com.example;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ListOpt {
    private List intersect(List ls1, List ls2) {
        List list = new ArrayList(Arrays.asList(new Object[ls1.size()]));
        Collections.copy(list, ls1);
        list.retainAll(ls2);
        return list;
    }

    private List union(List ls1, List ls2) {
        List list = new ArrayList(Arrays.asList(new Object[ls1.size()]));
        Collections.copy(list, ls1);
        list.addAll(ls2);
        return list;
    }

    private List diff(List ls1, List ls2) {
        List list = new ArrayList(Arrays.asList(new Object[ls1.size()]));
        Collections.copy(list, ls1);
        list.removeAll(ls2);
        return list;
    }

    public static void main(String[] args) {
        List<Integer> l1 = new ArrayList<Integer>() {{
            add(1);
            add(2);
            add(3);
        }};
        List<Integer> l2 = new ArrayList<Integer>() {{
            add(2);
            add(3);
            add(4);
        }};

        ListOpt opt = new ListOpt();
        List intersectList = opt.intersect(l1, l2);
        List union = opt.union(l1, l2);
        List diff = opt.diff(l1, l2);

        print(intersectList);
        print(union);
        print(diff);

    }

    private static void print(List lst) {
        if (lst.size() == 0) {
            return;
        }
        for (int i = 0; i <lst.size(); ++i) {
            System.out.println(lst.get(i));
        }
        System.out.println("---");
    }
}
Java 集合并交补
回到顶部

输出

Java 集合并交补
2
3
---
1
2
3
2
3
4
---
1
---
Java 集合并交补
回到顶部

在操作之前对原对象进行了拷贝,如果对原对象直接操作会修改原来的对象





本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/7226085.html,如需转载请自行联系原作者