先来一段代码:

   ArrayList a = new ArrayList();a.add(new Integer(3));Iterator it = a.iterator();a.add(new String("hellow"));while(it.hasNext()){System.out.println(it.next());}

咋一看,这段代码貌似没有问题。可是运行之后却会报异常。

原因在哪里呢?

事实上,在编程过程中,容易出现先指定迭代器iterator,然后对链表增加节点,这样做是错误的。

原因是:由于在进行遍历集合时不能改变集合的长度,如果采用集合自带的API比如add、remove等方法对集合进行相关操作时候就会抛出异常。

JAVA中iterator与add的顺序问题相关推荐

  1. Java中Iterator类的详细介绍

    迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节. 概述 Java集合框架的集合类,我们有时候称之为容器.容器的种类有很多种,比如ArrayList.Li ...

  2. java中Iterator用法总结

    Java中Iterator用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级& ...

  3. java中iterator用法_java_详解Java中Iterator迭代器的用法,迭代器(Iterator)迭代 - phpStudy...

    详解Java中Iterator迭代器的用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为&quo ...

  4. Java中Iterator迭代器详解

    目录 一.Java中Iterator迭代器详解 1.为什么需要迭代器 2.迭代器长什么样子 3.如何使用迭代器 使用步骤: 代码演示: 迭代器可以简化为增强型for循环: 4.Iterator与Lis ...

  5. java学习笔记-java中运算符号的优先顺序

    java中各种运算符具有优先级顺序,一般会先计算优先级高的,再计算优先级低的.可以使用()使得优先级变为最高. 在算术运算中,优先级为 ++ -- * / + - 在在逻辑运算中的优先级是 ! 取反 ...

  6. 面试官:Java中线程是按什么顺序执行的?

    本文分享自华为云社区<[高并发系列]Java中线程到底是按什么顺序执行的?你了解的可能是错误的!>,原文作者:冰 河 . Java中线程的执行顺序可能与你想的不一样!一文解密多线程的执行顺 ...

  7. Java 中Iterator 、Vector、ArrayList、List 使用深入剖析

    标签:Iterator Java List ArrayList Vector 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些 ...

  8. Java中Iterator用法

    迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价 ...

  9. Java中Iterator用法整理

    迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价 ...

最新文章

  1. SpringBoot Mybatis解决使用PageHelper一对多分页问题
  2. asp.net performance
  3. (一)为什么你应该(从现在开始就)写博客
  4. 基于HTML5的WebGL呈现A星算法的3D可视化
  5. SAP UI5 应用开发教程之四十五 - 如何在 SAP UI5 应用里使用 jQuery 和原生的 DOM API
  6. Object-C基础入门笔记(一)
  7. [css] 使用css实现彩虹的效果
  8. 【excel技巧读书笔记001】清除打开过的文件记录
  9. mysql 失效转移_MySQL基于MHA的FailOver过程
  10. centos 更改root用户名(超简单)
  11. mysql插入性能测试
  12. oracle用户密码规则,使用Oracle自带profile以及函数简单设定Oracle用户名密码规则...
  13. 技术帝,教你认识海思芯片及ARM芯片技术科普
  14. 制作一个启动软盘并用bochs模拟器启动
  15. 花费巨资去培训SAP真的值得吗?
  16. 记录m3u8变成图片的解决办法
  17. Android开发之获取SIM卡信息和手机号码
  18. 「次时代建模」次时代游戏模型制作教程
  19. 设计模式、架构、框架
  20. Tomorrow never knows? (C程序设计进阶 第2周)

热门文章

  1. 牵引力教育推荐最先进的5大敏捷PHP开发框架
  2. 11、web端主要应用在哪些领域?
  3. Microsoft SQL server 2005的基本操作
  4. MBSA有关安全漏洞的检查说明一
  5. 串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)
  6. Redis面试题及分布式集群
  7. RDMA相关的技术网站
  8. 第二十二章:面向对象(2)
  9. 用谷歌浏览器来模拟手机浏览器
  10. eclipse PHP开发环境配置