大家好,我是雄雄。

今天我们还是分享关于集合的内容。

假如有这样的需求,已知集合的长度为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的元素相关推荐

  1. 有一个List集合,里面存储了5个Student对象。Student有姓名、年龄和成绩属性,按照多个属性进行排序(一行代码解决list对象集合排序问题)。

    有一个List集合,里面存储了5个Student对象.Student有姓名.年龄和成绩属性,按照要求进行排序(一行代码解决list对象集合排序问题). 要求对List集合进行排序,排序规则是: 1.先 ...

  2. lamuda表达式 list移除空元素_Lambda 表达式遍历集合时用remove方法删除list集合中满足条件的元素问题...

    一:循环遍历list集合的四种方式 简单for循环 iterator循环 增加for循环 Lanbda表达式 二:四种遍历方式的用法示例 //简单for循环 List fileList = new A ...

  3. js在post后台接口的时候,一行代码完成删除对象中所有值为null、undefined或为空字符串““的属性

    var d= {a: 1,b: null,c: 3,d: undefined };Object.keys(d).forEach(k=>d[k]==null&&delete d[k ...

  4. Java中如何循环删除一个集合(如List)中的多个元素

    今天我需要从一个java的集合中,根据另一个集合的内容,删除第一个集合中不特定的元素.这看上去非常简单,但却遇到了问题.这就是"Java中如何删除一个集合中的多个元素"的问题. 这 ...

  5. Python 面试:“一行代码实现 xx”类题目(带答案)

    大家好,我是 Rocky0429,一个正在准备面试的蒟蒻- 最近,我被 "一行代码实现 xx" 这类问题疯狂吸引,主要是作为一个能躺着绝不坐着的懒人,代码能少写坚决少写,而且这类问 ...

  6. 删除list集合中特定元素的正确姿势

    背景 如何删除一个集合对象中的特定元素?小问题,但并不简单. 常见异常: ConcurrentModificationException java.util.ConcurrentModificatio ...

  7. java输出数组中的元素_java一行代码输出数组的所有元素内容

    如果要用java把一个数组的元素都输出到控制台的话,你要怎么做呢? 是通过一个循环去循环数组中的各个元素,然后输出吗? 像不像二维数组 今天我要说的是,可以通过一行代码就完成这个工作.是一样什么样的代 ...

  8. Python 一行代码搞定炫酷可视化,你需要了解一下 Cufflinks

    前言 学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等.这些可视化库都有自己的特点 ...

  9. python 东哥 with open_Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks

    作者:xiaoyu 微信公众号:Python数据科学 前言 学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boke ...

最新文章

  1. 1346. 检查整数及其两倍数是否存在 golang
  2. Pytorch 张量tensor
  3. android小应用,只能播放一首歌的应用
  4. Python版快速排序算法
  5. matlab 跳棋,MATLAB画跳棋棋盘
  6. 学习分享|量化风控从入门到放弃
  7. Javascript事件模型系列(一)事件及事件的三种模型
  8. POJ3748 位操作【位运算+STL】
  9. Python语言程序设计基础_期末作品设计——程序员计算器(2020-2 A)_答案_通识教育必修课程_上海师范大学
  10. lidar/imu组合slam相关文章
  11. 数据库考点之关系代数表达
  12. 英国研制出新型机器人具有10种人类表情(组图)
  13. 机器学习-算法原理与编程实践(郑捷.著)-阅读笔记
  14. Linux征途服务端启动,linux征途之系统开机流程
  15. 【图文教程】注册Oculus开发者账号
  16. vue.js 的学习
  17. Appium 点击操作梳理
  18. 可见光通信 调制解调技术 家庭机器人 可见光通信应用 原理及硬件方案
  19. 使用vue控制video视频和弹幕功能
  20. 微信小程序引用阿里云图标的方法

热门文章

  1. CF755G PolandBall and Many Other Balls(多项式/倍增fft)
  2. #2686. 「BalticOI 2013」雪地足迹 双端队列01bfs + 模型转换
  3. BBQ Hard dp + 组合数学 + 建模
  4. Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换
  5. 【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】
  6. Strange Memory Gym - 102832F
  7. P2571 [SCOI2010]传送带
  8. 牛客题霸 [二进制中1的个数] C++题解/答案
  9. YBTOJ:矛盾指数(网络流-最大权闭合图)
  10. NOI.AC-序列【堆】