zoukankan      html  css  js  c++  java
  • java 中,for、for-each、iterator 区别

    • java 中,for、for-each、iterator 区别:
    1. 无论是在数组中还是在集合中,for-Each加强型for循环都是它们各自的普通for循环的一种“简写方式”,即两者意思上是等价的,但前者方便简单,建议多使用。
    2. for-Each循环不能完全代替普通for循环,因为for-Each有一定的局限性。
    3. for-Each循环只能用于 数组、Iterable类型(包括集合)。
    4. 集合中的for-Each循环本质上使用了Ierator迭代器,所以要注意Itrator迭代陷阱(单线程和多线程都有问题)。
    • java 中,数组没有 iterator 用法

    • 在数组中,for-Each 循环能否完全替代普通for循环?
      答案是不能。
      虽然for-Each 写起来方便,但也有以下几个局限性:

    1. 只能对元素进行顺序的访问;
    2. 只能访问数组或集合中的所有元素;
    3. 循环中没有当前的索引,无法对指定的元素操作。如更换当前索引位置的元素。
    • 集合迭代的陷阱  
      集合循环遍历时所使用的迭代器Iterator有一个要求:在迭代的过程中,除了使用迭代器(如:Iterator.remove()方法)对集合增删元素外,是不允许直接对集合进行增删操作。否则将会抛出 ConcurrentModificationException异常。
      所以,由于集合的for-Each循环本质上使用的还是Iterator来迭代,因此也要注意这个陷阱。
      for-Each循环很隐蔽地使用了Iterator,导致程序员很容易忽略掉这个细节,所以一定要注意。

    • 出处:https://juejin.im/post/5adfc617f265da0b873a26d5

  • 相关阅读:
    文本框样式
    flash载入xml不显示中文之谜
    日期 时间 正则表达式
    .NET对象生命周期小结
    Python标准库12 数学与随机数 (math包,random包)
    CXF 4 应用开发
    CXF 2
    CXF 3
    MyEclipse提示键配置、提示快捷键、提示背景色、关键字颜色、代码显示
    CXF 5参考资料
  • 原文地址:https://www.cnblogs.com/cag2050/p/10197400.html
Copyright © 2011-2022 走看看