日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集合还有这么优雅的运算法?

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合还有这么优雅的运算法? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:在初中數學,我們也有集合的概念,非但如此,還有集合中的一些運算,例如交集、并集、差集等,那么我們java中的集合是否有這樣的運算呢?今天我們就一起來看看!

01

并集

就是將兩個集合合起來,元素都放在一起,這個比較簡單,我們只需要使用集合的addAll方法就可以,代碼如下:

public?static?void?main(String[] args) {//第一個集合List<String> list1 = new?ArrayList<String>();list1.add("一");list1.add("二");list1.add("三");System.out.println("第一個集合中的元素:");for?(String str : list1) {System.out.print(str + " ");}//第二個集合List<String> list2 = new?ArrayList<String>();list2.add("二");list2.add("三");list2.add("四");System.out.println("\n第二個集合中的元素:");for?(String str : list2) {System.out.print(str + " ");}//集合之間的交集運算list1.addAll(list2);System.out.println("\n最后集合中的元素:");for?(String str : list1) {System.out.print(str + " ");}}

運行結果:

此時的list1集合里面不光有原來的元素,還有list2的元素。

02

交集

即兩個集合中都有的元素,一個有另一個也有的,代碼如下:(省略聲明和初始化集合的代碼,和第一個示例一樣)

list1.retainAll(list2);

運行結果如下:

很顯然,共同存在的只有“二三”,大家想想,list1中的“一”還在嗎?

03

差集

即在list1中存在的,但是list2中沒有的元素,代碼如下:(省略聲明和初始化集合的代碼,和第一個示例一樣)

list1.removeAll(list2);

運行結果:

顯然:“一”在list2中是不存在的。原理就是刪除list1中出現在list2中的元素。

04

無重復的并集

我們都知道,并集是list1+list2的所有,那如果list1里面有的,list2里面也有,你這一并集,最后的list1集合肯定會有重復的元素,那如何實現不重復的并集呢?代碼如下:

public?static?void?main(String[] args) {//第一個集合List<String> list1 = new?ArrayList<String>();list1.add("一");list1.add("二");list1.add("三");System.out.println("第一個集合中的元素:");for?(String str : list1) {System.out.print(str + " ");}//第二個集合List<String> list2 = new?ArrayList<String>();list2.add("二");list2.add("三");list2.add("四");System.out.println("\n第二個集合中的元素:");for?(String str : list2) {System.out.print(str + " ");}//集合之間的交集運算list1.removeAll(list2);list1.addAll(list2);System.out.println("\n最后集合中的元素:");for?(String str : list1) {System.out.print(str + " ");}}

運行結果:

代碼分析,我們先使用差集,過濾一下list1中所有在list2中出現的元素,出現了就刪除,也就是remoAll方法調用完之后,list1中還剩“一”,然后list2中還有“二、三、四”,兩個一并集,自然結果就是“一、二、三、四”。

你看看這樣處理集合優雅不優雅?其實通常我們遇到類似的需求時,一般都會拿起來for循環就遍歷,操作,這種方法想都不會想到。

往期精彩

自從有了這款辣椒醬,拌飯再也不用老干媽

2020-10-30

使用相對長度單位rem布局網頁內容

2020-11-03

使用相對長度單位em布局網頁內容

2020-11-02

binarySearch與IndexOf的那些事兒~

2020-11-01

新機必裝!那些你不知道的實用技軟件在這里!文末免費獲取

2020-10-31

如何使用bootstrap實現輪播圖?

2020-10-29

班級日常分享:一天一瞬間!

2020-10-29

點分享

點點贊

點在看

總結

以上是生活随笔為你收集整理的集合还有这么优雅的运算法?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。