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

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

生活随笔

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

编程问答

1.13 Predicate操作Collection集合

發(fā)布時(shí)間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.13 Predicate操作Collection集合 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用Java 8新增的Predicate操作Collection集合

Java 8 起為 Collection 集合新增了一個(gè) removeIf(Predicate filter) 方法,該方法將會(huì)批量刪除符合 filter 條件的所有元素。該方法需要一個(gè) Predicate 對(duì)象作為參數(shù),Predicate 也是函數(shù)式接口,因此可使用 Lambda 表達(dá)式作為參數(shù)。

如下程序示范了使用 Predicate 來(lái)過(guò)濾集合。

import java.util.Collection; import java.util.HashSet; import java.util.Iterator;public class Test {public static void main(String[] args) {//創(chuàng)建一個(gè)集合Collection objs=new HashSet();objs.add("111111111");objs.add("22222222");objs.add("3333333");objs.add("444444");objs.add("55555");objs.removeIf(ele -> ((String)ele).length()<=6);System.out.println(objs);}}

上面程序中 objs.removeIf(ele -> ((String)ele).length()<=6);調(diào)用了 Collection 集合的 removeIf() 方法批量刪除集合中符合條件的元素,程序傳入一個(gè) Lambda 表達(dá)式作為過(guò)濾條件。所有長(zhǎng)度小于6 的字符串元素都會(huì)被刪除。編譯、運(yùn)行這段代碼,可以看到如下輸出:

[3333333, 111111111, 22222222]

使用 Predicate 可以充分簡(jiǎn)化集合的運(yùn)算,假設(shè) objs 集合,程序有如下三個(gè)統(tǒng)計(jì)需求:

  • 統(tǒng)計(jì)集合中出現(xiàn)“英雄聯(lián)盟”字符串的數(shù)量。
  • 統(tǒng)計(jì)集合中出現(xiàn)“養(yǎng)爹人”字符串的數(shù)量。
  • 統(tǒng)計(jì)集合中出現(xiàn)字符串長(zhǎng)度大于 7 的數(shù)量。

此處只是一個(gè)假設(shè),實(shí)際上還可能有更多的統(tǒng)計(jì)需求。如果采用傳統(tǒng)的編程方式來(lái)完成這些需求,則需要執(zhí)行三次循環(huán),但采用 Predicate 只需要一個(gè)方法即可。下面代碼示范了這種用法。

import java.util.Collection; import java.util.HashSet; import java.util.function.Predicate;public class Test {public static int calAll(Collection books,Predicate p){int total=0;for(Object obj:books){// 使用Predicate的test()方法判斷該對(duì)象是否滿足Predicate指定的條件if(p.test(obj)){total++;}}return total;}public static void main(String[] args) {//創(chuàng)建一個(gè)集合Collection objs=new HashSet();objs.add("英雄聯(lián)盟佐伊");objs.add("英雄聯(lián)盟拉克絲");objs.add("英雄聯(lián)盟萬(wàn)花通靈");objs.add("英雄聯(lián)盟時(shí)光守護(hù)者");objs.add("英雄聯(lián)盟峽谷養(yǎng)爹人");// 統(tǒng)計(jì)集合中出現(xiàn)“英雄聯(lián)盟”字符串的數(shù)量System.out.println(calAll(objs, ele -> ((String) ele).contains("英雄聯(lián)盟")));// 統(tǒng)計(jì)集合中出現(xiàn)“養(yǎng)爹人”字符串的數(shù)量System.out.println(calAll(objs, ele -> ((String)ele).contains("養(yǎng)爹人")));// 統(tǒng)計(jì)集合中出現(xiàn)字符串長(zhǎng)度大于 7 的數(shù)量System.out.println(calAll(objs, ele -> ((String) ele).length() > 7));}}

輸出結(jié)果為:

5 1 3

上面程序先定義了一個(gè) calAll() 方法,它使用 Predicate 判斷每個(gè)集合元素是否符合特定條件,條件將通過(guò) Predicate 參數(shù)動(dòng)態(tài)傳入。程序傳入了 3 個(gè) Lambda 表達(dá)式,其目標(biāo)類型都是 Predicate,這樣 calAll() 方法就只會(huì)統(tǒng)計(jì)滿足 Predicate 條件的圖書。

總結(jié)

以上是生活随笔為你收集整理的1.13 Predicate操作Collection集合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 秋霞在线观看视频 | 操一操干一干 | 无码人妻av一区二区三区波多野 | 激情三级在线 | 欧美激情亚洲综合 | 岛国av免费观看 | 日韩激情久久 | 色亚洲色图 | 人妻少妇精品久久 | 高清黄色一级片 | 男人天堂影院 | 中文字幕.com | 久久久久女人精品毛片九一 | 秋霞在线视频 | 欧美久久久久久久久久 | 妞干网精品| 精品国产九九 | 超碰一级片| 蜜桃av色偷偷av老熟女 | 香港黄色网址 | 波多野在线观看 | 天天看夜夜看 | 玖玖爱免费视频 | 91一起草 | 一级毛片aa | 青青草在线观看视频 | 日韩成人精品在线观看 | 国产精品500部 | 亚洲色图激情小说 | 国产欧美不卡 | 中国黄色在线视频 | 成人做爰黄 | 亚洲成人一区在线 | 少妇av片 | 久操影视| 精品成人一区二区三区久久精品 | 午夜在线一区二区三区 | 波多野结衣三级视频 | 国产精品亚洲а∨天堂免在线 | 一区二区三区欧美在线 | 亚洲视频精品在线 | 久久一二三区 | 精品一区二区三区在线免费观看 | 日韩人妻一区二区三区蜜桃 | 中文字幕第100页 | 久久久精品影视 | 国产一区二区在 | 自拍偷拍亚洲欧美 | 欧美成人vr18sexvr | 欧美精品一区二区蜜桃 | 亚洲精品国产精品国自产 | 在哪里可以看黄色片 | av亚州| 一卡二卡三卡视频 | 国产91视频播放 | 精品区| 久久夜色网 | 国产区高清 | 日韩毛片在线视频 | 校园春色在线观看 | 青青视频一区二区 | 97国产精东麻豆人妻电影 | 欧美精品久久久久a | 亚洲欧美国产毛片在线 | 女性裸体下面张开 | 狠狠干干干 | 久久精品超碰 | 久久久男女 | 一区二区三区四区中文字幕 | 久久久久激情 | 色8久久| 日韩精品视频在线 | 啊av在线| 国产黄色av| 女同动漫免费观看高清完整版在线观看 | 天天爽天天 | 欧美少妇一区二区三区 | 国产伦精品一区二区三区在线 | 亚洲23p| 最近免费中文字幕大全免费版视频 | 欧美视频综合 | 老汉av| 草草地址线路①屁屁影院成人 | 少妇人妻好深好紧精品无码 | 免费的av片| 99热2| 农村寡妇一区二区三区 | 黄色一区二区三区四区 | 黄色片特级 | 亚洲成熟少妇 | 久久99色| 国产精品欧美精品 | 性做爰视频免费播放大全 | 鲁一鲁在线视频 | 欧亚一区二区 | 国产精品二 | 免费国产视频 | 91久久久久久 | 蝌蚪av|