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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

神奇!一行代码实现删除某集合下标20-30的元素

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 神奇!一行代码实现删除某集合下标20-30的元素 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是雄雄。

今天我們還是分享關于集合的內容。

假如有這樣的需求,已知集合的長度為100,也就是集合中有100個元素,現需要刪除索引20-30之間的元素,我們應該怎么實現呢?我們先初始化集合,代碼如下:

public?static?void?testRemoveList(){List<String> lists = new?ArrayList<String>(100);for?(int?i = 0;i<100;i++) {lists.add("張三"+i);}//遍歷集合for?(String str : lists) {System.out.println(str);}}

這個很簡單,肯定難不倒聰明的你,你或許會用這一種方法,通過for循環遍歷集合,一律調用remove方法移除,關鍵代碼如下所示:

//遍歷集合,刪除索引為20-30的元素int?count = 0;for(int?i = 0;i<lists.size();i++){//每次都刪除下標為20的元素//當第一次刪除掉下標為20的元素時,原來下標為21的元素此下標此時就成了20,刪10次就可以了lists.remove(20);if(count==10){break;}count++;}

運行結果:

為什么需要這樣寫?如果我寫成如下代碼可以實現嗎?

for(int?i =0;i<lists.size();i++){if(i>=20&&i<=30){lists.remove(i);} }

這樣是不可以的,原因很簡單,當我們把下標為20的元素刪除之后,原來下標21的元素此時下標就會成20,所以這樣實現不了刪除20-30之間的元素。

言歸正傳,這種方法我們都知道,可是還有沒有更簡單的方法呢,答案是有的,回憶我們前幾期一直在說的subList方法,因為subList方法可以直接返回原列表的子列表(視圖),我們直接清空掉該子列表(視圖)中的所有元素那不就實現了嗎?故此我們可以使用一行代碼即可解決問題,如下所示:

lists.subList(20, 30).clear();

怎么樣,是不是很簡單,一定要學會學以致用!

往期精彩

‘小會計’的轉行之旅

2020-10-13

子列表只是原列表的一個視圖

2020-10-12

“半路出家”的程序猿怎么不被“熊”

2020-10-11

某同學工作之后的感悟

2020-10-10

班級日常分享,一天一瞬間

2020-10-10

為了金秋那沉甸甸的麥穗,我絕不辜負春天

2020-10-09

subList?? subString???

2020-10-08

支持作者

贊賞就不用啦,生活都不易,右下角的“在看/贊”點一下,如果感覺文章不錯,記得分享到朋友圈讓更多人知道!

點分享

點點贊

點在看

總結

以上是生活随笔為你收集整理的神奇!一行代码实现删除某集合下标20-30的元素的全部內容,希望文章能夠幫你解決所遇到的問題。

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