`
liujiawinds
  • 浏览: 134650 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

关于iterator的问题,很有点疑惑,希望能有人帮我解答一下。

    博客分类:
  • java
阅读更多

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()找不着的问题”时,这通常意味着你在尝试使用`iterator()`时遇到了错误,可能是由于以下几个原因: 1. **类库不兼容**: 如果你正在使用的类库版本不支持`iterator()`方法,比如你引用了...

    iterator的常用函数

    是关于iterator的函数,以及它们的作用!

    iterator_adaptor.pdf

    Boost库中的`iterator_adaptor`是一个强大的工具,用于创建自定义迭代器。这个模板类允许程序员以一种灵活的方式包装现有的迭代器类型,以适应特定的需求或扩展其功能。`iterator_adaptor`的设计理念是基于`iterator...

    Iterator迭代器讲解

    ### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...

    iterator嵌套,struts2

    在上述描述中,开发者遇到了一个关于`iterator`标签嵌套使用的问题,涉及到`LinkedHashMap`存储的数据结构。让我们深入探讨这个问题。 首先,`Timereport_infoAction`类中有几个关键的属性,包括`timereport_infos`...

    模拟java ArrayList Iterator

    首先,我们来详细解释一下ArrayList和Iterator的概念。ArrayList是一个可变大小的数组,它允许我们在任何位置插入和删除元素。在Java中,ArrayList类继承自AbstractList接口,并实现了List接口,提供了丰富的操作...

    Iterator用法

    ### C++中的Iterator模式详解 #### 什么是Iterator模式? 在软件工程中,设计模式是一种用于解决特定问题的通用可重用解决方案。Iterator模式是其中的一种,其主要目标是在不暴露集合内部结构的情况下,为遍历集合...

    图解设计Iterator 源代码

    在Java编程语言中,`Iterator`接口是集合框架的核心部分,它允许我们遍历集合中的元素,而无需暴露集合的内部结构。这个设计模式被称为迭代器模式,它为访问聚合对象(如数组、集合等)提供了一种统一的接口。在本...

    JAVA中的Iterator的用法

    一旦有了`Iterator`对象,就可以通过调用`hasNext()`和`next()`方法来遍历集合。示例代码如下: ```java while (iterator.hasNext()) { String item = iterator.next(); System.out.println(item); } ``` #### ...

    Iterator迭代器的用法

    该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法

    struts2 标签iterator使用

    在Struts2框架中,`<s:iterator>`标签是一个非常强大的工具,用于遍历集合或数组中的元素,尤其在处理列表数据时极为有用。通过本文档提供的代码示例,我们将深入探讨`<s:iterator>`标签的使用方法及其与不同数据...

    Iterator接口

    Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...

    一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。 将数据从后台传到Extjs表现层。

    一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...

    Iterator详解

    在Java编程语言中,迭代器(Iterator)是一个至关重要的工具,它提供了一种高效且简洁的方式来遍历和访问集合中的元素,而无需暴露集合的内部结构。迭代器设计模式遵循了“访问者”模式的原则,使得代码更加灵活和可...

    一个使用iterator和json技术的实例

    首先,我们来详细了解一下`Iterable`接口和`Iterator`接口。`Iterable`是Java集合框架的一部分,它定义了一个可以被迭代的对象。任何实现了`Iterable`接口的类都可以使用`for-each`循环进行遍历。`Iterator`接口是`...

    C++使用iterator的例子

    首先,C++标准库定义了五种不同类型的迭代器:输入迭代器(Input Iterator)、输出迭代器(Output Iterator)、前向迭代器(Forward Iterator)、双向迭代器(Bidirectional Iterator)和随机访问迭代器(Random ...

    Map、Set、Iterator迭代详解

    `Set`不允许重复的元素存在,这意味着不能有两个相同的对象存在于同一个`Set`中。为了实现这个特性,`Set`中的每个元素都必须重写`equals()`和`hashCode()`方法。 #### 2. Set接口的实现类 `Set`接口有几个重要的...

    struts2中iterator 标签的使用详解

    ### Struts2中Iterator标签的深入解析与应用 在Struts2框架中,`<s:iterator>`标签是一个非常强大的工具,用于在JSP页面上循环遍历集合数据,如列表(List)、数组、Map等。它允许开发者以一种动态且灵活的方式展示...

    java-util-iterator.pdf java-util-iterator.pdf

    根据提供的文件信息,本文将深入探讨Java中的`java.util.Iterator`接口及其在集合类中的应用。我们将从以下几个方面进行详细解析: ### 一、集合类的根接口:Collection `Collection`接口是Java集合框架的基础,它...

    Java源码分析:深入探讨Iterator模式

    ### Java源码分析:深入探讨Iterator模式 #### 一、引言 在Java编程语言中,集合框架(`java.util`包)提供了多种容器类来存储对象,如`List`、`Set`和`Map`等。为了遍历这些容器中的元素,Java引入了迭代器模式...

Global site tag (gtag.js) - Google Analytics