从List中移除指定 List 中包含的其所有元素,这个当然用List里面的removeAll方法了,但是有朋友说能不能不用removeAll呀

于是我就写了如下代码:

List l = ...;

List list = ....;

for(int i=0;i

String s = l.get(i);

if(list.contains(s)){

l.remove(s);

}

}

因为两个list读取的文件,运行后看着没什么错,后来无聊用了removeAll,发现结果不一样。

看代码没什么问题呀,后来经过反复实验,终于发现原来:List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取。

解决方法:

在remove掉一个元素后,把i减1,代码如下:

List l = ...;

List list = ....;

for(int i=0;i

String s = l.get(i);

if(list.contains(s)){

l.remove(s);

i--;

}

}

百度之后又发现另外两种方法:

1、倒过来遍历list

List l = ...;

List list = ....;

for(int i=l.length;i>=0;i--){

String s = l.get(i);

if(list.contains(s)){

l.remove(s);

}

}

2、使用iterator.remove()方法删除

List l = ...;

List list = ....;

for (Iterator it = list.iterator(); it.hasNext();) {

String s = (String)it.next();

if (list.contains(s)){

it.remove();

}

}

java list移除符合条件的元素_从List中移除指定 List 中包含的其所有元素(可选操作)。...相关推荐

  1. 找到符合条件的索引_程序员写了多年CRUD,总结出数据库索引这几点值得注意...

    索引,被称之为数据库的目录,可以让我们快速地找到对应的数据.但是,索引其实是一把双刃剑,如果使用不合理,不仅查询数据的速度不会变快,反而适得其反,让查询变慢. 工作原理 索引是对数据库表中一列或多列的 ...

  2. python删除符合条件的行_这十道经典Python笔试题,全做对算我输

    经常有小伙伴学了Python不知道是否能去找工作,可以来看下这十道题检验你的成果: 1.常用的字符串格式化方法有哪些?并说明他们的区别 a. 使用%,语法糖 print("我叫%s,今年%d ...

  3. bugku 杂项 就五层你能解开吗_长春老旧小区加装电梯,你家符合条件吗?_媒体_澎湃新闻...

    新朋友戳 蓝字关注我们哦! 长春市老旧小区开始加装外置电梯 大家都很关注 很多市民也在想 我家符合加装条件吗? 能申请吗? 伴随着长春市朝阳区3个老旧小区加装电梯工作的结束,这项惠民工程也成为了老百姓 ...

  4. 找到符合条件的索引_高频面试题:MySQL联合索引的最左前缀匹配原则

    前言 之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和面试官交流,发现遗漏了些东西,这里自己整理一下这方面的内容. 最左前缀匹配原则 在mysql建立联 ...

  5. Java 遍历Map元素并移除符合条件元素

    在Java中,如果遍历Map并移除单中的元素,如果使用的是非迭代器模式,非提示ConcurrentModificationException 异常. 实例代码:正确遍历Map元素和移除Map 元素方法 ...

  6. java list移除符合条件的元素_java List删除指定元素的三种方法

    java List删除指定元素有3种方法,分别是普通for循环,增强for循环以及原生的Iterator迭代器循环来删除list中指定的某个元素,非常的简单. 1:普通for循环遍历list,并删除指 ...

  7. Java查询对象中匹配元素_用LinkedList如何实现搜索指定对象的元素

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import static java.lang.System.out; import java.util.*; public class TestLink ...

  8. js 数组遍历符合条件跳出循环体_在JavaScript中循环遍历数组

    你有几个选择: 1.顺序for循环: var myStringArray = ["Hello","World"]; var arrayLength = mySt ...

  9. java二维数组数字数显次数_【每日一题】118.数组中数字出现的次数

    关注我们获取更多计算机考研信息 ? 今日习题 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 示例 1: 输入:nums = [3,4,3,3] ...

最新文章

  1. 核磁共振影像数据处理-1(下)-DWI基础、Li‘s have a solution and plan.
  2. 运维部门工作总结_2018年度工作总结
  3. MyBatis源码解析【4】反射和动态代理
  4. DCMTK:OFvariant的单元测试
  5. [Java基础]反射获取成员方法并使用练习
  6. c语言课设宿舍管理程序,C语言程序课程设计宿舍管理软件.doc
  7. 使用java.util.zip包实现根据文件目录控制文件的压缩与解压
  8. 读书笔记:《知道做到》
  9. 使用Java 10调用C/C++动态链接库dll之HelloWorld
  10. java读取和写入txt_Java读取和写入txt文件
  11. 图文详解 MapReduce 工作流程
  12. java项目集成谷歌登录验证器,给网站添加谷歌验证(我不是机器人)
  13. 细化(thinning)
  14. 企业电子邮箱怎么写?企业邮箱登录入口是什么?
  15. 简述MySQL分区表类型
  16. 小鼠大脑解剖图分区_科学家们绘制小鼠大脑的详细3D结构图谱
  17. 腾讯云学生服务器官网地址-腾讯云学生服务器如何购买
  18. SpringCloud分布式框架
  19. php redis 清空list_php redis批量删除key的方法
  20. 8421码到5421码的转换_如何实现用283加法器实现8421码到5421码的转换

热门文章

  1. 探究数字内容生产商机,把握未来内容生产脉搏
  2. 集成学习中的随机森林
  3. 机器学习笔记(一)----基本概念
  4. linux 物理内存用完了_12张图解Linux内存管理,程序员内功修炼,看过都说懂了!...
  5. Android 替换字体的方式以及同时替换多种字体
  6. 韩顺平php视频笔记71 面向对象编程的三大特征2 访问修饰符 继承
  7. 高等组合学笔记--完结篇
  8. Linux查找历史命令
  9. Windows下编写的脚本文件无法在Linux上运行的问题
  10. matlab自带四旋翼算例asbQuadcopter使用心得