神奇!一行代码实现删除某集合下标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的元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2012年的电脑主流配置?
- 下一篇: cf标准配置参数?