import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class TestIteratorError {
public static void main(String[] args){
Collection books= new HashSet();
books.add("dafad");
books.add("adfadfw");
books.add("wefrqsdf");
Iterator it =books.iterator();
while(it.hasNext()){
String book= (String)it.next();
System.out.println(book);
if(book.equals("adfadfw")){
books.remove(book);//使用iterator迭代的过程中,不可修改集合元素,这是会引发异常的。
}
}
}
}
代码如上所示,
当我执行这段程序时,并没有报错,这是怎么回事,
但是我把字符串替换成第一个和第三个元素就会报错。
下面是我在问答专栏采纳的正确答案,
因为在你对一个hashset遍历的时候是不能对集合进行remove操作的 hashset会对放进来的对象进行排序,然后添加进集合,你的adfadfw按照unicode编码来说正好排在集合的最后面,就是已经编历完了所以不会出错,而前面的两个都没遍历玩就会出错,你换成1 2 3试一试 就可以知道为什么会出错了
分享到:
相关推荐
当你遇到“方法iterator()找不着的问题”时,这通常意味着你在尝试使用`iterator()`时遇到了错误,可能是由于以下几个原因: 1. **类库不兼容**: 如果你正在使用的类库版本不支持`iterator()`方法,比如你引用了...
是关于iterator的函数,以及它们的作用!
Boost库中的`iterator_adaptor`是一个强大的工具,用于创建自定义迭代器。这个模板类允许程序员以一种灵活的方式包装现有的迭代器类型,以适应特定的需求或扩展其功能。`iterator_adaptor`的设计理念是基于`iterator...
### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...
在上述描述中,开发者遇到了一个关于`iterator`标签嵌套使用的问题,涉及到`LinkedHashMap`存储的数据结构。让我们深入探讨这个问题。 首先,`Timereport_infoAction`类中有几个关键的属性,包括`timereport_infos`...
首先,我们来详细解释一下ArrayList和Iterator的概念。ArrayList是一个可变大小的数组,它允许我们在任何位置插入和删除元素。在Java中,ArrayList类继承自AbstractList接口,并实现了List接口,提供了丰富的操作...
### C++中的Iterator模式详解 #### 什么是Iterator模式? 在软件工程中,设计模式是一种用于解决特定问题的通用可重用解决方案。Iterator模式是其中的一种,其主要目标是在不暴露集合内部结构的情况下,为遍历集合...
在Java编程语言中,`Iterator`接口是集合框架的核心部分,它允许我们遍历集合中的元素,而无需暴露集合的内部结构。这个设计模式被称为迭代器模式,它为访问聚合对象(如数组、集合等)提供了一种统一的接口。在本...
一旦有了`Iterator`对象,就可以通过调用`hasNext()`和`next()`方法来遍历集合。示例代码如下: ```java while (iterator.hasNext()) { String item = iterator.next(); System.out.println(item); } ``` #### ...
该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法
在Struts2框架中,`<s:iterator>`标签是一个非常强大的工具,用于遍历集合或数组中的元素,尤其在处理列表数据时极为有用。通过本文档提供的代码示例,我们将深入探讨`<s:iterator>`标签的使用方法及其与不同数据...
Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...
一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...
在Java编程语言中,迭代器(Iterator)是一个至关重要的工具,它提供了一种高效且简洁的方式来遍历和访问集合中的元素,而无需暴露集合的内部结构。迭代器设计模式遵循了“访问者”模式的原则,使得代码更加灵活和可...
首先,我们来详细了解一下`Iterable`接口和`Iterator`接口。`Iterable`是Java集合框架的一部分,它定义了一个可以被迭代的对象。任何实现了`Iterable`接口的类都可以使用`for-each`循环进行遍历。`Iterator`接口是`...
首先,C++标准库定义了五种不同类型的迭代器:输入迭代器(Input Iterator)、输出迭代器(Output Iterator)、前向迭代器(Forward Iterator)、双向迭代器(Bidirectional Iterator)和随机访问迭代器(Random ...
`Set`不允许重复的元素存在,这意味着不能有两个相同的对象存在于同一个`Set`中。为了实现这个特性,`Set`中的每个元素都必须重写`equals()`和`hashCode()`方法。 #### 2. Set接口的实现类 `Set`接口有几个重要的...
### Struts2中Iterator标签的深入解析与应用 在Struts2框架中,`<s:iterator>`标签是一个非常强大的工具,用于在JSP页面上循环遍历集合数据,如列表(List)、数组、Map等。它允许开发者以一种动态且灵活的方式展示...
根据提供的文件信息,本文将深入探讨Java中的`java.util.Iterator`接口及其在集合类中的应用。我们将从以下几个方面进行详细解析: ### 一、集合类的根接口:Collection `Collection`接口是Java集合框架的基础,它...
在Struts2框架中,`<s:iterator>`标签被广泛用于遍历集合或数组等数据结构。本文将深入探讨如何使用Struts2中的`<s:iterator>`标签来遍历二维数组,并通过实例代码来具体说明其用法。 ### Struts2 Iterator标签 ##...