一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

采用java8 lambda表達式 實現(xiàn) java list 交集 并集 差集 去重復(fù)并集

 雪山紅柳 2020-02-11

采用java8 lambda表達式 實現(xiàn)java list 交集/并集/差集/去重并集

一般的javaList 交、并集采用簡單的 removeAll retainAll 等操作,不過這也破壞了原始的javaList對象,采用java8 lambda表達式流操作則可以不影響原始list對象而得到兩個javaList對象的 交、并、差集。

具體代碼如下:


import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        List<String> list1 = new ArrayList();
        list1.add("1111");
        list1.add("2222");
        list1.add("3333");

        List<String> list2 = new ArrayList();
        list2.add("3333");
        list2.add("4444");
        list2.add("5555");

        // 交集
        List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList());
        System.out.println("---得到交集 intersection---");
        intersection.parallelStream().forEach(System.out :: println);

        // 差集 (list1 - list2)
        List<String> reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList());
        System.out.println("---得到差集 reduce1 (list1 - list2)---");
        reduce1.parallelStream().forEach(System.out :: println);

        // 差集 (list2 - list1)
        List<String> reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(toList());
        System.out.println("---得到差集 reduce2 (list2 - list1)---");
        reduce2.parallelStream().forEach(System.out :: println);

        // 并集
        List<String> listAll = list1.parallelStream().collect(toList());
        List<String> listAll2 = list2.parallelStream().collect(toList());
        listAll.addAll(listAll2);
        System.out.println("---得到并集 listAll---");
        listAll.parallelStream().forEach(System.out :: println);

        // 去重并集
        List<String> listAllDistinct = listAll.stream().distinct().collect(toList());
        System.out.println("---得到去重并集 listAllDistinct---");
        listAllDistinct.parallelStream().forEach(System.out :: println);

        System.out.println("---原來的List1---");
        list1.parallelStream().forEach(System.out :: println);
        System.out.println("---原來的List2---");
        list2.parallelStream().forEach(System.out :: println);

        // 一般有filter 操作時,不用并行流parallelStream ,如果用的話可能會導(dǎo)致線程安全問題

    }
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美国产日韩在线综合| 日本高清一区免费不卡| 欧美日韩国产自拍亚洲| 又大又长又粗又猛国产精品| 欧美字幕一区二区三区| 国产成人精品国产亚洲欧洲| 91亚洲精品亚洲国产| 欧美精品激情视频一区| 深夜少妇一区二区三区| 高潮日韩福利在线观看| 亚洲欧洲一区二区综合精品| 日韩在线免费看中文字幕| 儿媳妇的诱惑中文字幕| 国产午夜精品久久福利| 日韩欧美三级视频在线| 99秋霞在线观看视频| 日本熟女中文字幕一区| 欧美精品在线观看国产| 国产一区二区三区口爆在线| 国产精品一区二区不卡中文| 国产一区二区三区草莓av| 中国日韩一级黄色大片| 国产又粗又猛又爽又黄的文字| 日韩无套内射免费精品| 中文字幕人妻一区二区免费| 日系韩系还是欧美久久| 亚洲午夜精品视频在线| 久久机热频这里只精品| 日韩美女偷拍视频久久| 欧美中文日韩一区久久| 日本人妻精品有码字幕| 欧美做爰猛烈叫床大尺度| 欧洲日韩精品一区二区三区| 一区二区三区欧美高清| 欧美色欧美亚洲日在线| 国产不卡最新在线视频| 国产精欧美一区二区三区久久 | 欧洲日韩精品一区二区三区| 一本久道久久综合中文字幕| 国产传媒一区二区三区| 在线观看那种视频你懂的|