Java List 交集、差集、并集 操作

162 阅读1分钟
 public static void main(String[] args) {
        List<Integer> allSgmt = new ArrayList<>(Arrays.asList(5, 10, 15));
        List<Integer> upKeys = new ArrayList<>(Arrays.asList(5, 10, 15, 20, 25));
        // 差集
        allSgmt.removeAll(upKeys);
        System.out.println("差集: " + allSgmt);
        allSgmt = new ArrayList<>(Arrays.asList(5, 10, 15, 20, 25));
        upKeys = new ArrayList<>(Arrays.asList(5, 10, 15));
        // 交集
        allSgmt.retainAll(upKeys);
        System.out.println("交集: " + allSgmt);
        allSgmt = new ArrayList<>(Arrays.asList(5, 10, 15, 20, 25));
        upKeys = new ArrayList<>(Arrays.asList(5, 10, 15));
        // 并集
        allSgmt.addAll(upKeys);
        System.out.println("并集: " + allSgmt);


        allSgmt = new ArrayList<>(Arrays.asList(5, 10, 15));
        upKeys = new ArrayList<>(Arrays.asList(5, 10, 15, 20, 25));

        List<Integer> allSgmt1 = new ArrayList<>(allSgmt);
        List<Integer> upKeys1 = new ArrayList<>(upKeys);
        // 交集
        allSgmt1.retainAll(upKeys1);
        // 差集
        allSgmt.removeAll(allSgmt1);
        upKeys.removeAll(allSgmt1);
        allSgmt.addAll(upKeys);
        System.out.println("去除相交的部分:" +allSgmt);

    }