国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語(yǔ)言|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 詳解java8在Collection中新增加的方法removeIf

詳解java8在Collection中新增加的方法removeIf

2021-03-25 10:14紀(jì)莫 JAVA教程

這篇文章主要介紹了詳解java8在Collection中新增加的方法removeIf的相關(guān)資料,需要的朋友可以參考下

記得我在以前找工作的經(jīng)歷中,遇到過(guò)一個(gè)面試官問(wèn)過(guò)我一個(gè)很基礎(chǔ)的問(wèn)題。問(wèn)題是:有一個(gè)List中有10個(gè)元素,我現(xiàn)在想從中刪除3個(gè)元素,請(qǐng)問(wèn)怎么做?我當(dāng)時(shí)也沒(méi)想,就直接說(shuō),List的有自帶的remove方法,可以直接使用,他說(shuō)請(qǐng)?jiān)敿?xì)的說(shuō)明一下,我說(shuō)寫一個(gè)for循環(huán),循環(huán)的次數(shù)是List的長(zhǎng)度,然后在循環(huán)里面直接刪除掉想要?jiǎng)h除的元素就可以了。

當(dāng)時(shí)還想,這么簡(jiǎn)單的問(wèn)題也問(wèn),面試官說(shuō),你回去自己試試就知道了,你看按照你說(shuō)的那樣寫會(huì)不會(huì)報(bào)錯(cuò)。然后我就懵了,雖然這是個(gè)簡(jiǎn)單的問(wèn)題但是日常的編碼中,我還真沒(méi)有注意過(guò)這個(gè)小細(xì)節(jié),然后面試結(jié)果可想而知了。

我回去以后自己真的試了一次還真的會(huì)報(bào)錯(cuò),原來(lái)在遍歷的過(guò)程中是不對(duì)List操作進(jìn)行修改的,無(wú)論是刪除和添加,因?yàn)槿绻诒闅v中一直向集合中新增加元素,會(huì)造成死循環(huán)的,還有就是如果在遍歷過(guò)程中刪除元素,會(huì)造成數(shù)組下表越界等問(wèn)題。一般的操作方式是通過(guò)addAll方法和removeAll方法來(lái)實(shí)現(xiàn)的功能的。

例如下面的這種

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Test
public void myTestLearnMore()
{
 List<String> testList = new ArrayList<>();
 testList.add("1楊");
 testList.add("1李");
 testList.add("1王");
 testList.add("1張");
 testList.add("2楊");
 testList.add("2孫");
 testList.add("2趙");
 List<String> temAddList = new ArrayList<>();
 for(String test : testList)
 {
  if(test.startsWith("1"))
  {
   temAddList.add(test);
  }
 }
 testList.removeAll(temAddList);
 System.out.println(JSON.toJSONString(testList));
}

打印結(jié)果是:[“2楊”,”2孫”,”2趙”]

這才是真正的操作方式。不過(guò)今天我要說(shuō)的其實(shí)Java8的新增的集合方法,像上面先創(chuàng)建一個(gè)臨時(shí)集合然后再通過(guò)遍歷將需要移除的元放到臨時(shí)集合中,最后再整體從原始集合中刪除。這樣要寫五六行的代碼,在java8中用一行代碼就可以搞定了。就是下面這行代碼:

?
1
testList.removeIf(test->test.startsWith("1"));

這句代碼的意思是移除符合removeIf參數(shù)格式的元素,所以在這行代碼后面再打印testList,就不會(huì)打印出以1開頭的元素了。

這些小細(xì)節(jié)其實(shí)都是在日常的編碼過(guò)程中積累出來(lái)的,遇到的坑多了,以后再寫的時(shí)候就會(huì)注意了,就像是java中在使用equals的時(shí)候,從來(lái)都是已知的常量放equals前面,防止出現(xiàn)空指針異常,在集合使用lambda表達(dá)式的時(shí)候,都要通過(guò)Objects.nonNull()先判斷集合是不是null,在打印對(duì)象的時(shí)候不要直接調(diào)用對(duì)象的toString()方法,要將對(duì)象傳遞給Objects的toString方法,這樣就算對(duì)象是個(gè)null也可以打印出來(lái)。Objects這個(gè)類是java7新增的工具類。

總結(jié)

以上所述是小編給大家介紹的java8在Collection中新增加的方法removeIf ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

原文鏈接:https://www.cnblogs.com/jimoer/archive/2018/01/21/8322421.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 中文av一区 | 精品欧美乱码久久久久久1区2区 | 欧美精品91 | 国产免费高清 | 国产一区二区三区在线免费观看 | 激情国产 | 亚洲一区二区三区在线免费观看 | 中文字幕av一区二区 | 美女黄18| 日韩视频三区 | 亚洲午夜免费视频 | 亚洲二区视频 | 黄色成人在线 | 国产乱码精品1区2区3区 | 国偷自产av一区二区三区 | 欧美成年黄网站色视频 | 精品综合 | 刺激网 | 黄色一级大片在线免费看产 | 国产特黄大片aaaaa毛片 | 日本一区二区三区精品视频 | 久久国产精品一区二区 | 亚洲 欧美 自拍偷拍 | 国产欧美专区 | 久久国产精品久久 | 91网在线| 成人av在线网 | 日本精品久久 | 天天干天天干天天干天天射 | 国产成人精品一区二区在线 | 一级黄色片aaa | 女人爽到高潮aaaa电影 | 欧美黑人性暴力猛交喷水 | 精品福利片 | 欧美午夜影院 | 国产精品区一区二区三含羞草 | 国产高清在线精品一区二区三区 | 午夜视频在线观看网站 | 日韩精品1区 | 亚洲精品久久久久久一区二区 | 久久久久一区二区三区 |