神奇!一行代码实现删除某集合下标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的元素相关推荐
- 有一个List集合,里面存储了5个Student对象。Student有姓名、年龄和成绩属性,按照多个属性进行排序(一行代码解决list对象集合排序问题)。
有一个List集合,里面存储了5个Student对象.Student有姓名.年龄和成绩属性,按照要求进行排序(一行代码解决list对象集合排序问题). 要求对List集合进行排序,排序规则是: 1.先 ...
- lamuda表达式 list移除空元素_Lambda 表达式遍历集合时用remove方法删除list集合中满足条件的元素问题...
一:循环遍历list集合的四种方式 简单for循环 iterator循环 增加for循环 Lanbda表达式 二:四种遍历方式的用法示例 //简单for循环 List fileList = new A ...
- 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 ...
- Java中如何循环删除一个集合(如List)中的多个元素
今天我需要从一个java的集合中,根据另一个集合的内容,删除第一个集合中不特定的元素.这看上去非常简单,但却遇到了问题.这就是"Java中如何删除一个集合中的多个元素"的问题. 这 ...
- Python 面试:“一行代码实现 xx”类题目(带答案)
大家好,我是 Rocky0429,一个正在准备面试的蒟蒻- 最近,我被 "一行代码实现 xx" 这类问题疯狂吸引,主要是作为一个能躺着绝不坐着的懒人,代码能少写坚决少写,而且这类问 ...
- 删除list集合中特定元素的正确姿势
背景 如何删除一个集合对象中的特定元素?小问题,但并不简单. 常见异常: ConcurrentModificationException java.util.ConcurrentModificatio ...
- java输出数组中的元素_java一行代码输出数组的所有元素内容
如果要用java把一个数组的元素都输出到控制台的话,你要怎么做呢? 是通过一个循环去循环数组中的各个元素,然后输出吗? 像不像二维数组 今天我要说的是,可以通过一行代码就完成这个工作.是一样什么样的代 ...
- Python 一行代码搞定炫酷可视化,你需要了解一下 Cufflinks
前言 学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等.这些可视化库都有自己的特点 ...
- python 东哥 with open_Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks
作者:xiaoyu 微信公众号:Python数据科学 前言 学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boke ...
最新文章
- 1346. 检查整数及其两倍数是否存在 golang
- Pytorch 张量tensor
- android小应用,只能播放一首歌的应用
- Python版快速排序算法
- matlab 跳棋,MATLAB画跳棋棋盘
- 学习分享|量化风控从入门到放弃
- Javascript事件模型系列(一)事件及事件的三种模型
- POJ3748 位操作【位运算+STL】
- Python语言程序设计基础_期末作品设计——程序员计算器(2020-2 A)_答案_通识教育必修课程_上海师范大学
- lidar/imu组合slam相关文章
- 数据库考点之关系代数表达
- 英国研制出新型机器人具有10种人类表情(组图)
- 机器学习-算法原理与编程实践(郑捷.著)-阅读笔记
- Linux征途服务端启动,linux征途之系统开机流程
- 【图文教程】注册Oculus开发者账号
- vue.js 的学习
- Appium 点击操作梳理
- 可见光通信 调制解调技术 家庭机器人 可见光通信应用 原理及硬件方案
- 使用vue控制video视频和弹幕功能
- 微信小程序引用阿里云图标的方法
热门文章
- CF755G PolandBall and Many Other Balls(多项式/倍增fft)
- #2686. 「BalticOI 2013」雪地足迹 双端队列01bfs + 模型转换
- BBQ Hard dp + 组合数学 + 建模
- Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换
- 【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】
- Strange Memory Gym - 102832F
- P2571 [SCOI2010]传送带
- 牛客题霸 [二进制中1的个数] C++题解/答案
- YBTOJ:矛盾指数(网络流-最大权闭合图)
- NOI.AC-序列【堆】