返回顶部
首页 > 资讯 > 精选 >Java中for each怎么用
  • 197
分享到

Java中for each怎么用

2023-06-03 01:06:21 197人浏览 薄情痞子
摘要

小编给大家分享一下Java中for each怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Java中,遍历集合和数组一般有以下三种形式:for (int

小编给大家分享一下Java中for each怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在Java中,遍历集合数组一般有以下三种形式:

for (int i = 0; i < list.size(); i++) {

    System.out.print(list.get(i) + ",");

}

Iterator iter= list.iterator();

while (iter.hasNext()) {

    System.out.print(iter.next() + ",");

}

for (Integer i : list) {

    System.out.print(i + ",");

}

第一种是普通的for循环遍历,第二种是使用迭代器进行遍历,第三种我们一般称之为增强for循环也就是for each循环。

for each实现原理剖析

我们对以下代码进行反编译:

for(String str:list){

  System.out.print(str+",");

}

反编译后的代码是这样的:

String str;

for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.print((new StringBuilder(String.valueOf(str))).append(",").toString())){

   str = (String)iterator.next();

}

反编译后的代码虽然有点复杂,不过通过反编译,我们看到Java中的for each循环底层是通过迭代器模式来实现的。

坑,小心哦

由于for each循环通过迭代器实现,那么必然有迭代器的特性。在Java中使用迭代器遍历元素的时候,在对集合进行删除的时候一定要注意,使用不当有可能发生ConcurrentModificationException,如以下代码:

for(String str:list){

System.out.print(str+",");

list.remove(str);

}

会抛出ConcurrentModificationException异常。

Iterator被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,当索引指针往后移动的时候就找不到要迭代的对象,所以会抛出ConcurrentModificationException异常。

Iterator 在工作的时候是不允许被迭代的对象被改变的。但你可以使用 Iterator 本身的方法 remove() 来删除对象,Iterator.remove() 方法会在删除当前迭代对象的同时维护索引的一致性。

正确的在遍历的同时删除元素的姿势:

Iterator<String> Iter = list.iterator();    

while (Iter.hasNext()) { 

String str=Iter.next();

System.out.print(str+",");

        //注意不是list而是Iter的remove。

Iter.remove();    

}

这个细微的问题,可能在大部分情况下由于条件的限制不会出现,一旦条件满足,问题便暴露出来,这就是为什么明明运行良好的代码突然报错了。因此在使用for each循环时一定要注意这个坑。

以上是“Java中for each怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Java中for each怎么用

本文链接: https://lsjlt.com/news/231949.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java中for each怎么用
    小编给大家分享一下Java中for each怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Java中,遍历集合和数组一般有以下三种形式:for (int ...
    99+
    2023-06-03
  • VB.NET中For/Each技术怎么用
    这篇文章主要为大家展示了“VB.NET中For/Each技术怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET中For/Each技术怎么用”这篇文章吧。我们大多数开发人员在进行VB...
    99+
    2023-06-17
  • jquery中each怎么用
    这篇文章将为大家详细讲解有关jquery中each怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 jquery中each的使用形式是“$...
    99+
    2024-04-02
  • c++中for each循环的用法是什么
    在C++中,没有像Java或C#中的for each循环语法。然而,可以使用标准库中的迭代器来实现类似的功能。例如,可以使用std:...
    99+
    2024-04-02
  • VBS中For Each...Next语句的用法
    本篇内容介绍了“VBS中For Each...Next语句的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!For Each...Next...
    99+
    2023-06-08
  • jquery中each怎么使用
    这篇“jquery中each怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jque...
    99+
    2024-04-02
  • php中的each怎么用
    本篇内容主要讲解“php中的each怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中的each怎么用”吧!在PHP中,each()函数用于返回当前元素的键名和键值,并将内部指针向前移...
    99+
    2023-06-30
  • jquery中each()函数怎么用
    本篇内容介绍了“jquery中each()函数怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • php中each()函数怎么用
    这篇文章给大家分享的是有关php中each()函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及p...
    99+
    2023-06-14
  • javascript的each怎么使用
    这篇文章主要介绍“javascript的each怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript的each怎么使用”文章能帮助大家解决问题。什么是each?each 是一种...
    99+
    2023-07-06
  • MySQL 触发器中的“FOR EACH ROW”如何工作?
    实际上“FOR EACH ROW”意味着更新或删除的每个匹配行。换句话说,我们可以说触发器并不应用于每一行,它只是说对每个受影响的表行执行触发器主体。我们可以通过以下示例来说明这一点 -示例在此示例中,我们创建两个表,Sample 和 Sa...
    99+
    2023-10-22
  • jQuery的each()方法怎么使用
    jQuery的each()方法用于遍历集合中的每个元素,并对每个元素执行指定的函数。语法:```javascript$.each(c...
    99+
    2023-09-05
    jQuery
  • Java 5.0怎么用for
    这篇文章主要为大家展示了“Java 5.0怎么用for”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java 5.0怎么用for”这篇文章吧。Java 5.0 引入了新版的 for 循环,我把它...
    99+
    2023-06-03
  • 怎么在jQuery中使用each()方法实现遍历
    怎么在jQuery中使用each()方法实现遍历?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特...
    99+
    2023-06-14
  • 怎么在jquery中使用each方法遍历数组
    本篇文章为大家展示了怎么在jquery中使用each方法遍历数组,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特的链式...
    99+
    2023-06-14
  • jquery的each有什么用
    今天小编给大家分享一下jquery的each有什么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • jquery中each指的是什么
    这篇“jquery中each指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jqu...
    99+
    2024-04-02
  • java中的for怎么理解
    java关键字for:循环控制的一个关键字,可以用来控制语句循环。通常的格式是:for(初始化;控制语句;控制变量调控){循环语句}。控制变量的初始化部分可以省略,也可以初始化很多变量。如:for(;i...
    99+
    2018-10-22
    java教程 java for
  • 怎么在jquery中使用$.each()遍历对象和数组
    怎么在jquery中使用$.each()遍历对象和数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。jquery是什么jquery是一个简洁而快速的JavaScript库,...
    99+
    2023-06-14
  • 怎么在jquery中使用$.each方法遍历json数组
    本篇文章为大家展示了怎么在jquery中使用$.each方法遍历json数组,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。js有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作