- 浏览: 195297 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. Java中iterator迭代器
2. iterator迭代器改变时发生ConcurrentModificationException异常
推荐博客:
https://blog.csdn.net/dove_knowledge/article/details/71023512
https://www.cnblogs.com/andy-zhou/p/5339683.html
迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。 通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。 迭代器的使用主要有以下三个方面的注意事项: 1) 使用容器的iterator()方法返回一个Iterator,然后通过Iterator的next()方法返回第一个元素。 2) 使用Iterator()的hasNext()方法判断容器中是否还有元素,如果有,可以使用next()方法获取下一个元素。 3) 可以通过remove()方法删除迭代器返回的元素。 import java.util.HashSet; import java.util.Iterator; public class InteratorTest { public static void main(String[] args){ HashSet set = new HashSet(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); // Iterator iter = set.iterator(); // while(iter.hasNext()){ // String value = (String)iter.next(); // System.out.println(value); // } for(Iterator iter = set.iterator(); iter.hasNext(); ){ String value = (String)iter.next(); System.out.println(value); } } } 运行结果: d e b c a
2. iterator迭代器改变时发生ConcurrentModificationException异常
在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常 import java.util.ArrayList; import java.util.Iterator; public class InteratorTest { public static void main(String[] args){ ArrayList<Integer> list = new ArrayList<Integer>(); list.add(4); list.add(3); list.add(2); Iterator<Integer> iterator = list.iterator(); while(iterator.hasNext()){ Integer integer = iterator.next(); if (integer==2) { list.remove(integer); } else { System.out.println(integer); } } } } 运行结果: 4 3 Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source) at java.util.ArrayList$Itr.next(Unknown Source) at com.test.sort.InteratorTest.main(InteratorTest.java:13) 在使用arraylist的remove()方法就会出现问题,需要使用iterator.remove()方法就不会出现问题了 import java.util.ArrayList; import java.util.Iterator; public class InteratorTest { public static void main(String[] args){ ArrayList<Integer> list = new ArrayList<Integer>(); list.add(4); list.add(3); list.add(2); Iterator<Integer> iterator = list.iterator(); while(iterator.hasNext()){ Integer integer = iterator.next(); if (integer==2) { // list.remove(integer); iterator.remove(); } else { System.out.println(integer); } } } } 运行结果: 4 3
推荐博客:
https://blog.csdn.net/dove_knowledge/article/details/71023512
https://www.cnblogs.com/andy-zhou/p/5339683.html
发表评论
-
Java中获取IP地址、子网掩码、网关地址
2019-06-26 10:53 01. Java中获取IP地址、子网掩码、网关地址、ping连通 ... -
Java中ThreadLocal
2019-04-19 10:44 01. Java中ThreadLocal Java中的Th ... -
Java中原子性锁synchronized、Lock
2019-04-18 15:19 01. synchronized依赖JVM 1) 修饰代码 ... -
Java中原子性Atomic
2019-04-18 14:45 01. Atomic包简介 java.util.concu ... -
开发常用链接
2019-03-26 11:21 0在线工具:http://tool.oschina.net/ ... -
java1234学习目录
2019-03-21 11:08 01-01-01 N01 J2SEv2(41课时) ... -
Java中TCP和UDP
2018-10-25 10:55 3591. 网页内容获取 Url1.java impor ... -
Java中Thread线程
2018-10-25 09:38 3991. 实现线程的两种方式 1. 继承Thread类并重写 ... -
Java中serializable序列化
2018-10-24 14:46 4891. 序列化 transient不会被序列化。 imp ... -
Java中CharSet集
2018-10-24 11:31 5571. CharSet集 import java.nio. ... -
Java中RandomAccessFile类
2018-10-24 11:30 5211. RandomAccessFile类 1. 使用Ra ... -
Java中I/O的字符流InputStreamReader和OutputStreamWriter
2018-10-22 09:43 4531. InputStreamReader和OutputStre ... -
Java中其它输入输出流
2018-10-22 09:08 4831. ByteArrayInputStream流 以ar ... -
Java中I/O的OutputStream流
2018-10-22 08:54 4971. Java中I/O的OutputStream流 1. ... -
Java中I/O的InputStream流
2018-10-22 08:42 4791. Java中I/O的InputStream流 1. ... -
Java中I/O的File类
2018-10-19 13:45 4541. Java中I/O的File类 1. 在window ... -
Java中innerClass内部类
2018-10-18 09:37 4641. Java中innerClass内部类 用AA.BB ... -
Java中adapter适配器
2018-10-18 08:36 5961. Java中adapter适配器 适配器adapte ... -
Java中awt包
2018-10-17 11:26 17271. Java中awt包 AWT事件模型Event 1 ... -
Java中frame对象
2018-10-17 10:56 6961. Java中frame对象 1. Frame对象 ...
相关推荐
### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...
要使用`Iterator`,首先需要通过调用集合类的`iterator()`方法来获取迭代器实例。例如,对于ArrayList,代码可能如下所示: ```java ArrayList<String> list = new ArrayList(); // 添加元素... Iterator...
在Java编程语言中,迭代器模式(Iterator Pattern)是一种常用的设计模式,用于顺序访问集合对象中的元素,而无需暴露其底层表示。这种模式提供了一种方法来访问一个聚合对象的元素,而无需暴露该对象的内部结构。在...
Java语言中,使用Iterator迭代器遍历集合数据是一种常见的操作。本文主要介绍了Java使用Iterator迭代器遍历集合数据的方法,并结合实例形式分析了Java迭代器进行集合数据遍历的常见操作技巧。 Iterator迭代器是Java...
迭代器模式是设计模式中的一种,它允许程序员访问聚合对象的元素,同时不暴露其内部表示。下面我们将深入探讨Java中`Iterator`的使用方法和特点。 ### 1. `Iterator`接口概述 `Iterator`接口位于`java.util`包中,...
Iterator迭代器是Java编程中的一种常见数据结构,用于遍历集合中的元素。在Java中,Iterator迭代器是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素。那么Iterator迭代器的设计原理是什么呢?为什么定义...
### 自己实现Java中的Iterator(迭代器功能) #### 背景与动机 在Java编程过程中,迭代器(`Iterator`)是一种常见的用于遍历集合元素的机制。它提供了访问集合元素的方式,而不暴露底层数据结构。对于学习或进阶...
在深入探讨Java中Iterator(迭代器)的一般用法之前,我们先来理解一下迭代器在编程中的核心价值。迭代器是一种设计模式,其主要作用在于遍历集合中的元素,而无需开发者知晓集合的具体实现细节。这使得代码更加灵活、...
在Java编程语言中,迭代是遍历集合对象(如数组、列表或集合)的重要机制,而迭代器(Iterator)则是实现这一机制的关键工具。这里,我们通过一个小例子来深入理解Java中的迭代和迭代器。 首先,我们需要了解什么是...
迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...
// 如果计数器的值大于等于 2 就说明有重复的,就删除迭代器中当前的内容 if (count >= 2) { it.remove(); } count = 0; } } } ``` 在上面的代码中,我们首先创建了一个 ArrayList 集合,并往其中添加了一些...
在`HashMap`中,我们可以通过`entrySet()`、`keySet()`或`values()`方法获取迭代器,分别针对键值对、键或值进行迭代。 1. **使用`entrySet()`迭代**: 这是最常见的迭代方式,因为它允许同时访问键和值。首先,...
Java Iterator迭代器是Java集合框架中的一种重要组件,用于遍历集合中的元素。在Java中,Iterator接口是Java集合框架的核心组件之一,它提供了一种通用的方式来遍历集合中的元素。 在Java中,Iterator接口定义了三...
常用的集合类Iterator迭代器的使用foreach循环 泛型Collections、Arrays工具
在给定的文件内容中,介绍了如何在Java中使用迭代器,通过导入java.util.Iterator包,并使用iterator()方法获取迭代器实例,然后通过hasNext()和next()方法遍历集合并打印每个元素。这是一种典型的迭代器使用场景,...
### Iterator迭代器详解 #### 1. Iterator接口介绍 `Iterator`接口提供了遍历`Collection`中元素的能力。它是一种设计模式,允许开发者遍历容器中的元素,而无需暴露容器底层的实现细节。 #### 2. Iterator接口的...
在Java中,迭代器模式被广泛运用,尤其是在处理各种集合如`List`、`Set`、`Map`等时,通过迭代器可以更高效、更安全地遍历集合中的每个元素。本文将详细探讨迭代器模式的原理、结构以及在Java中的具体实现。 #### ...
计算机后端-Java-Java核心基础-第24章 集合01 11. Iterator迭代器remove()的使用.avi
根据提供的文件信息,我们可以深入探讨迭代器(Iterator)这一设计模式在Java中的应用与实现细节。迭代器模式是一种常用的设计模式,它允许我们以一种顺序访问集合对象的方式遍历其元素,而无需暴露该对象的内部表示...
Iterator 迭代器