`
Yinny
  • 浏览: 295004 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

for循环 增强for循环 iterator遍历集合的区别与用法

阅读更多
1.手先增强for循环和iterator遍历的效果是一样的,也就说
增强for循环的内部也就是调用iteratoer实现的,但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。
3.而对于 LinkedList 由于获取一个元素,要从头开始向后找,因此建议使用 增强for循环,也就是iterator。


以下例子证明第一点
①     public static void removeEvensVer2(List<Integer> lst)
    {
        for (Integer x : lst)
            if (x % 2 == 0)
                lst.remove(x);
       
        System.out.println(lst);
    }

②     public static void removeEvensVer3(List<Integer> lst)
    {
        Iterator<Integer> itr = lst.iterator();
        while (itr.hasNext())
            if (itr.next() % 2 == 0)
                itr.remove();
    
        System.out.println(lst);
    }

①在运行时抛出异常,②正常
原因分析:因为增强的for循环内部就是调用iterator实现的,在遍历的时候就将list转化为了迭代器,当迭代器被创建之后,如果从结构上对列表修改除非通过迭代器自身的remove、add方法,其他任何时间任何方式的修改,迭代器都会抛出ConcurrentModificationException异常。
分享到:
评论

相关推荐

    for,foreach,iterator的用法和区别

    "for、foreach、iterator的用法和区别" 在 Java 编程语言中,for、foreach 和 iterator 是三种常用的遍历数组和集合的方法。它们之间有相似之处,但也存在着许多不同之处。 相同点:三者都可以用来遍历数组和集合...

    java 使用foreach遍历集合元素的实例

    在Java编程语言中,`foreach`循环是一种简洁的遍历集合元素的方式,它引入自Java 5(JDK 1.5)。`foreach`循环也被称为增强for循环,它的主要目的是简化对数组和集合的迭代操作。在本实例中,我们将深入探讨如何使用...

    Java学习之Iterator(迭代器)的一般用法

    在实际开发中,我们经常看到增强型for循环(也称为foreach循环)被用于遍历集合,其实内部也是利用了迭代器的原理。增强型for循环的语法更加简洁,但它隐藏了迭代器的细节,使得代码更加易于理解和编写。 ```java ...

    详解Java中Iterable与Iterator用法

    for each循环实际上是依赖于Iterator迭代器的,只不过Java提供的语法糖使得我们可以更方便地遍历集合中的元素。 for (Integer i : list) { System.out.print(i + ","); } 反编译后,我们可以看到for each循环实际...

    在struts2中要实现for循环

    `&lt;s:iterator&gt;`标签是Struts2中最常用的标签之一,它可以用来遍历集合(如List、Set、Map等)。但是,如果想要实现类似Java中的`for`循环功能,可以利用`org.apache.struts2.util.Counter`类来实现。 ### 实现步骤 ...

    深入解读JavaScript中的Iterator和for-of循环

    总的来说,for-of循环与Iterator的配合使用,提供了统一且简洁的遍历语法,使得操作数据结构时更加直观高效。它解决了for-in循环存在的问题,并且让ES6中新增的集合类型(如Set和Map)的遍历变得轻而易举。通过理解...

    Java for循环的几种用法分析

    Java for循环是编程中最常用的控制流...传统for循环提供了更多的控制,而增强型for循环则提供了一种简洁、易读的方式来遍历数组和集合,尤其适用于只读操作。在选择使用哪种循环时,应根据具体需求和代码可读性来决定。

    java程序的四种遍历

    增强型for循环是Java 5引入的一种新特性,它使得遍历集合变得更加简洁。这种方式不需要显式地管理索引,可以更加专注于处理集合中的元素。代码示例中已经给出了这种遍历方式的例子: ```java for (User u : user...

    Iterator迭代器的简单介绍与使用

    以下是一个使用Iterator遍历集合的示例: ```java List&lt;String&gt; list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); Iterator&lt;String&gt; iterator = list.iterator(); while (iterator.hasNext...

    java集合_浅谈Iterable和Iterator的区别

    这个接口的存在使得任何实现它的类都可以被用于`for-each`循环(增强for循环),这是一种简洁且易于理解的遍历集合元素的方式。例如,`Collection`、`List`和`Set`都是`Iterable`接口的实现类,因此可以使用`for-...

    s:iterator 用法.docx

    Struts2 框架中的 `s:iterator` 标签是用于遍历集合、数组、Map 或者数据栈中的对象的重要组件。这个标签提供了一种便捷的方式来在 JSP 页面上展示动态数据,使得开发者能够方便地循环遍历并显示元素。下面我们将...

    s:iterator 用法.pdf

    Struts2框架中的`s:iterator`标签是用于循环遍历数据集合的重要标签,适用于处理数组、列表、Map等数据结构。下面将详细讲解这个标签的用法及其各种属性。 1. **基本用法** `s:iterator`标签的基础用法是通过`...

    javaList用法

    * 使用 for 循环遍历 List 集合:可以使用 for 循环遍历 List 集合,例如使用 get(int index) 方法获得指定索引位置的元素。 List 集合的应用场景 List 集合的应用场景非常广泛,例如: * 存储数据:List 集合...

    Java实现Map集合遍历的四种常见方式与用法分析

    Java实现Map集合遍历的四种常见方式与用法分析 Map集合是Java中的一种常见的数据结构,用于存储键值对形式的数据。在实际开发中,我们经常需要遍历Map集合来获取键和值。本文将介绍Java实现Map集合遍历的四种常见...

    第7天(集合【迭代器、增强for、泛型】)v201703101

    增强的`for`循环(也称为foreach循环)是Java 5引入的新特性,它简化了遍历集合的过程。对于实现了`Iterable`接口的集合,可以直接使用增强for循环来遍历元素,例如: ```java for (Type element : collection) { /...

    s:iterator 用法 (2).pdf

    Struts2框架中的`s:iterator`标签是用于循环遍历集合数据的重要标签,适用于处理数组、列表、Map等数据结构。下面将详细讲解这个标签的用法及其各种属性。 1. **基本用法** `s:iterator`标签的基础用法是通过`...

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

    在Java编程语言中,`Iterator`接口和`Iterable`接口是处理集合数据的重要工具,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于数据传输和存储。这个"iterator_jsonDemo"实例结合了这...

    ES6 Iterator接口和for...of循环用法分析

    `for...of`循环则是利用`Iterator`接口来简洁地遍历这些集合的语法糖。 首先,让我们深入理解`Iterator`接口。`Iterator`接口定义了一个迭代过程,返回一个包含`value`和`done`属性的对象。`value`表示当前遍历到的...

    Collection集合基本练习1

    - 增强for循环(foreach):简化遍历集合的代码,例如`for (String str : collection) {...}` 5. **Cat类**: - 定义类Cat,包含私有属性名称、颜色和年龄,以及相应的getter和setter方法。 - 重写`toString()`...

    示例iterator使用及技巧

    `Iterator`是Java集合框架中的一个重要组成部分,它提供了一种遍历集合元素的方法。通过本文的学习,读者将能够更好地理解和掌握`Iterator`的用法。 #### 一、基本概念与使用方法 ##### 1. `Iterator`接口简介 `...

Global site tag (gtag.js) - Google Analytics