从集合中删除元素一直是一个比较容易遗漏的知识点,今天来给大家介绍一下删除集合​​中特定元素的一些情况。

(一)List如何实现遍历删除

以ArrayList为例

         List<String> a1 = new ArrayList<String>();a1.add("Tom");a1.add("Tom");a1.add("Jerry");a1.add("John");a1.add("Andy");Iterator<String> it = a1.iterator();while(it.hasNext()) {String next = it.next();if(next.equals("Tom")) {it.remove();}}for (int i = 0; i < a1.size(); i++) {System.out.println(a1.get(i));}

运行结果大家可以自己试一下,可以发现两个Tom都被删除了,这种就是利用迭代器来删除List中的元素,是非常正确的做法。LinkedList也是一样。那么除了迭代器还有没有其他做法呢?答案是有的,请看

        List<String> a1 = new ArrayList<String>();a1.add("Tom");a1.add("Tom");a1.add("Jerry");a1.add("John");a1.add("Andy");for (int i = 0; i < a1.size(); ) {if(a1.get(i).equals("Tom")) {a1.remove(i);}else {i++;}}

看到这里有的小伙伴也许会问,为什么要在else的时候再i++呢?这是因为因为集合的长度发生了变化,导致原来的索引指向的元素后移了一位,所以要在不满足删除条件时再i++,不然会导致漏元素,很有可能出现漏删的情况,小伙伴们可以试一下正常把i++放在for的括号里。

(二)Set如何实现遍历删除

Set以HashSet为例,注意:Set一般只能用迭代器来遍历

      HashSet<String> a1 = new HashSet<String>();a1.add("Tom");a1.add("Tom");a1.add("Jerry");a1.add("John");a1.add("Andy");Iterator<String> it = a1.iterator();  while (it.hasNext()) {  String str = it.next();  if(str.equals("Tom")) {it.remove();}}    

这就是Set的遍历删除方式

(三)Map如何实现遍历删除

Map以HashMap为例来说明其遍历删除。

HashMap<String, String> h1 = new HashMap<String,String>();h1.put("Tom", "one");h1.put("Jerry", "two");h1.put("John", "three");h1.put("Andy", "four");Iterator<Entry<String, String>> it = h1.entrySet().iterator();while(it.hasNext()) {Entry<String, String> next = it.next();//此处为删除特定的keyif(next.getKey().equals("Tom")) {it.remove();}//此处为删除特定的valueif(next.getValue().equals("two")) {it.remove();}}//遍历HashMapfor (Entry<String, String> string : h1.entrySet()) {System.out.println(string.getKey());}

小伙伴们自己运行下,就可以发现特定的key和value都删除成功了。

好了,所有的内容就到这里了,希望能对大家有所帮助。

删除集合中特定元素的几种情况相关推荐

  1. 循环的时候去删除集合中的元素 java.util.ConcurrentModificationException

    使用for循环,删除集合中的元素,会报错 java.util.ConcurrentModificationException 只能通过迭代器 iterator删除 1:在while循环中使用itera ...

  2. PageCollectionView[Bug],使用Filter的时候,删除集合中的元素,会导致ArgumentOutOfRangeException...

    PageCollectionView,没有使用Filter的时候一切正常:当使用Filter的时候,删除集合中的元素,会抛出如下异常: 1: 指定的参数已超出有效值的范围.\n参数名: index 2 ...

  3. java删除集合元素吗_java如何删除集合中的元素

    java如何删除集合中的元素 如何使用java删除集合中的'元素呢?下面是小编给大家提供的删除集合中元素的常见方法,欢迎阅读,更多详情请关注应届毕业生考试网. Java代码如下: package co ...

  4. vue中如何在方法中动态的删除集合中的元素!?

    参考https://blog.csdn.net/weixin_42230550/article/details/87990486 vue中,如何在方法中动态的删除集合中的元素? me.btn_elem ...

  5. (js)删除数组中某个元素的几种方式

    (js)删除数组中某个元素的几种方式 filter 删除删除数组中某个指定元素 //过滤出item.srcConcept != this.vertex的对象 this.edit.conceptData ...

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

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

  7. java删除数组中重复元素的几种方法

    Java操控数组,删除数组中所有的重复元素,使其数组元素全部唯一,有以下几种方法: 1,使用set(最好想到),set本身就是不重复的集合: package Array_test;import jav ...

  8. JS 删除数组中某个元素的几种方式

    目录 第一种:删除最后一个元素 pop 删除 slice 删除 splice 删除 for 删除 length 删除 第二种: 删除第一个元素 shift 删除 slice 删除 splice 删除 ...

  9. JavaScript删除数组中某个元素的几种方式

    文章目录 第一种:删除最后一个元素 pop 删除 slice 删除 splice 删除 for 删除 length 删除 第二种: 删除第一个元素 shift 删除 slice 删除 splice 删 ...

最新文章

  1. 外包工作经历暨2021年终总结
  2. const与define之间的区别?
  3. Linux设备驱动01:Linux设备驱动概述
  4. 程序员:你为什么要离职?
  5. halcon常用代码(持续更新)
  6. PHP调微信小程序接口:生成小程序码,常见问题
  7. 【数据预测】基于matlab双向长短时记忆BiLSTM(多输入单输出)数据预测【含Matlab源码 1826期】
  8. CSS 教程(全)+代码
  9. Arm 架构的过程调用标准
  10. 前端method常见请求方式
  11. tinker热修复gradle接入
  12. iMeta | 德加合作揭示葛藤菌根真菌的遗传多样性和群落组成
  13. emc服务器装什么系统,EMC DD系统安装指南.pdf
  14. 种植人参,土壤不好,怎么办?
  15. 亚马逊全球开店戴竫斐:2021中国出口跨境电商的蜕变与破局
  16. window11 git Bash右击不见得问题
  17. matlab 输入普朗克常量,半导体激光器线宽展宽因子的理论与实验分析.pdf
  18. mysql自动排序_MySQL中的排序
  19. android手机系统检测工具下载,手机设备信息检测软件下载-设备信息检测appv1.0 官方版-腾牛安卓网...
  20. ubuntu18.04+pcl1.8:运行visualization可视化程序,vtk6.3报错,vtk版本过低需重新安装对应版本vtk7.1.1

热门文章

  1. ubuntu20.4 无线网卡AX211 无法连接wifi
  2. 使用python的PIL.Image在图片上写字
  3. 使用Echarts将Excel数据转换成色彩地图HTML小工具
  4. 「苦练基本功」超级大佬推荐工程师必看的书感悟
  5. 程序员忽悠女朋友玩gal
  6. schedule问题
  7. (转)go rabbitmq实践
  8. AOJ 15951 零件加工问题二
  9. C语言学生管理系统(期末作业,超详细哟,拿走不谢!!!)
  10. 使用JavaScript进行销毁:操作指南