輸入静的java.util.stream.Collectors.toList。
輸入はjava.util.ArrayList;
輸入はjava.util.List;
パブリッククラスTest {
パブリック静的無効メイン(文字列[] args){
リストの<string> LIST1 =新しいArrayListを()。
list1.add( "1111");
list1.add( "2222");
list1.add( "3333");
一覧<文字列>リスト2 =新しいArrayListを();
list2.add( "3333");
list2.add( "4444");
list2.add( "5555");
//交集
リストの<string>交差点= list1.stream()フィルタ(項目- > list2.contains(アイテム))を収集(ToListメソッド())。
System.out.println( "---得到交集交差点---");
intersection.parallelStream()はforEach(System.outに::のprintln)。
//差集(リスト1 - LIST2)
。。リスト<文字列> reduce1 = list1.stream()フィルタ(!アイテム- > list2.contains(アイテム))コレクト(ToListメソッド());
System.out.println( "---得到差集reduce1(LIST1 - LIST2)---")。
reduce1.parallelStream()はforEach(System.outに::のprintln)。
//差集(LIST2 -リスト1)
。リスト<文字列> reduce2 = list2.stream()フィルタ(項目- > list1.contains(アイテム)!)コレクト(ToListメソッド());
System.out.println( "---得到差集reduce2(LIST2 - LIST1)---")。
reduce2.parallelStream()はforEach(System.outに::のprintln)。
//并集
。リスト<文字列> listAllの= list1.parallelStream()コレクト(ToListメソッド());
リストの<string> listAll2 = list2.parallelStream()を収集(ToListメソッド())。
listAll.addAll(listAll2)。
System.out.println( "---得到并集listAllの---");
listAll.parallelStream()はforEach(System.outに::のprintln)。
重いとの//セット
リスト<文字列> listAllDistinct = listAll.stream()DISTINCT()コレクト(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)。
//一般的に、フィルタ操作の代わりに、並列にparallelStreamをストリームする場合、使用している場合、スレッド安全性の問題につながる可能性
}
}
オリジナルます。https://blog.csdn.net/gzt19881123/article/details/78327465/
著作権:この記事はブロガーオリジナル記事です、複製、ボーエンのリンクを添付してください!