java集合迭代器Iterator中的remove陷阱

 更新时间:2016年04月29日 15:41:02   作者:小和尚敲代码  
这篇文章主要介绍了java集合迭代器Iterator中的remove陷阱,需要的朋友可以参考下

package TestList;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;

public class TestIterator {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<String> list = new ArrayList<String>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        Iterator t = list.iterator();
        while(t.hasNext()){
            if(t.next().equals("bbb")){   //使用iterator遍历list集合时,如果想要删除任一集合内元素,必须要在正好遍历倒数第二个元素的时候去删除
                list.remove("ccc");
            }
        }
        
        TreeSet<String> set = new TreeSet<String>();
        set.add("ddd");
        set.add("eee");
        set.add("fff");
        Iterator t1 = set.iterator();
        while(t1.hasNext()){
            if(t1.next().equals("fff")){  //使用iterator遍历set集合时,如果想要删除任一集合内元素,必须要在正好遍历倒数第一个元素的时候去删除
                set.remove("eee");
            }
        }
    }

}

由于List,Set在实现Iterator时存在一定的差异,因此导致了List,Set在迭代的同时删除集合元素的会有不同的表现

相关文章

  • Spring+quartz实现定时发送邮件功能实例

    Spring+quartz实现定时发送邮件功能实例

    spring提供的定时发送邮件功能一直深受广大web开发者的喜爱,这篇文章主要介绍了Spring+quartz实现定时发送邮件功能实例,有兴趣的可以了解一下。
    2017-03-03
  • JAVA数据写入生成excel文件和发送邮件

    JAVA数据写入生成excel文件和发送邮件

    这篇文章主要介绍了JAVA数据写入生成excel文件和发送邮件,流程:先导包 => 邮箱开启配置 => java写好配置类 => 测试发送 => 数据写入excel => 邮件带附件发送
    2024-06-06
  • SpringCloud将Nacos作为配置中心实现流程详解

    SpringCloud将Nacos作为配置中心实现流程详解

    这篇文章主要介绍了Springcloud中的Nacos Config服务配置,本文以用户微服务为例,进行统一的配置,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • 解决SpringBoot使用@Value获取不到yaml中配置值的问题

    解决SpringBoot使用@Value获取不到yaml中配置值的问题

    在最近的开发中遇到一个问题,使用@Value获取yml文件中配置的属性时始终获取不到值,所以本文给大家详细介绍了SpringBoot使用@Value获取不到yaml中值的问题分析及解决方法,需要的朋友可以参考下
    2024-01-01
  • 教你bat脚本一键配置java开发环境

    教你bat脚本一键配置java开发环境

    公司新入职一名员工,项目经理让我安排新人工作,首先需要对java开发相关环境进行配置安装,但时常会因为安装配置不到位或者操作错误导致时间的浪费,所以在空余时间收集了一系列软件的免安装版本,感兴趣的朋友一起看看吧
    2021-12-12
  • spring boot自定义配置时在yml文件输入有提示问题及解决方案

    spring boot自定义配置时在yml文件输入有提示问题及解决方案

    自定义一个配置类,然后在yml文件具体配置值时,一般不会有提示,今天小编给大家分享spring boot自定义配置时在yml文件输入有提示问题,感兴趣的朋友一起看看吧
    2023-10-10
  • JAVA日志框架之JUL、JDK原生日志框架详解

    JAVA日志框架之JUL、JDK原生日志框架详解

    Java语言的强大之处就是因为它强大而且成熟的生态体系,其中包括日志框架,下面这篇文章主要给大家介绍了关于JAVA日志框架之JUL、JDK原生日志框架的相关资料,需要的朋友可以参考下
    2024-01-01
  • java使用筛选法求n以内的素数示例(java求素数)

    java使用筛选法求n以内的素数示例(java求素数)

    这篇文章主要介绍了java使用筛选法求n以内的素数示例(java求素数),需要的朋友可以参考下
    2014-04-04
  • Java表格JTable代码实例解析

    Java表格JTable代码实例解析

    这篇文章主要介绍了Java表格JTable代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 关于MyBatis通用Mapper@Table注解使用的注意点

    关于MyBatis通用Mapper@Table注解使用的注意点

    这篇文章主要介绍了关于MyBatis通用Mapper@Table注解使用的注意点,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论