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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合还有这么优雅的运算法? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

01

并集

就是將兩個(gè)集合合起來(lái),元素都放在一起,這個(gè)比較簡(jiǎn)單,我們只需要使用集合的addAll方法就可以,代碼如下:

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

運(yùn)行結(jié)果:

此時(shí)的list1集合里面不光有原來(lái)的元素,還有l(wèi)ist2的元素。

02

交集

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

list1.retainAll(list2);

運(yùn)行結(jié)果如下:

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

03

差集

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

list1.removeAll(list2);

運(yùn)行結(jié)果:

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

04

無(wú)重復(fù)的并集

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

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

運(yùn)行結(jié)果:

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

你看看這樣處理集合優(yōu)雅不優(yōu)雅?其實(shí)通常我們遇到類似的需求時(shí),一般都會(huì)拿起來(lái)for循環(huán)就遍歷,操作,這種方法想都不會(huì)想到。

往期精彩

自從有了這款辣椒醬,拌飯?jiān)僖膊挥美细蓩?/p>

2020-10-30

使用相對(duì)長(zhǎng)度單位rem布局網(wǎng)頁(yè)內(nèi)容

2020-11-03

使用相對(duì)長(zhǎng)度單位em布局網(wǎng)頁(yè)內(nèi)容

2020-11-02

binarySearch與IndexOf的那些事兒~

2020-11-01

新機(jī)必裝!那些你不知道的實(shí)用技軟件在這里!文末免費(fèi)獲取

2020-10-31

如何使用bootstrap實(shí)現(xiàn)輪播圖?

2020-10-29

班級(jí)日常分享:一天一瞬間!

2020-10-29

點(diǎn)分享

點(diǎn)點(diǎn)贊

點(diǎn)在看

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。