增强的for循环例子:
public static<AnyType> void print(Collection<AnyType> coll){
for(AnyType item:coll)
System.out.println(item);
}/**这就是一个简单的增强for循环的例子**/
当编译器遇到一个正在用于Iterator的对象的增强的for循环的时候,它用对iterator
方法的那些调用替代增强的for循环以得到一个Iterator对象,然后调用next和hasNext
public static<AnyType> void print(Collection<AnyType> coll){
Iterator<AnyType>it=coll.iterator();
while(it.hasNext()){
AnyType item=it.next();
System.out.println(item);
}
}/**通过编译器使用一个迭代器改写的iterator类型上的增强for循环**/ 当使用增强的for循环,或者直接使用Iterator的时候,如果正在迭代的集合进行结构上的改变
比如对集合使用add,remove,clear等方法,那么迭代器将不再合法,并且会有异常抛出,
然而如果迭代器使用了自己的remove方法,那这个迭代器仍是合法的。 /**这个测试增强for循环里改变集合结构的代码**/
public class Text {
public static void main(String[]args){
List<Integer>zzy=new ArrayList<>();
zzy.add(6);zzy.add(5);zzy.add(1);zzy.add(4);zzy.add(2);
System.out.println(zzy);
Text.RemoveEvensver(zzy);
System.out.println(zzy);
}
public static void RemoveEvensver(List<Integer>list){ /**这是第一个方法,出现编译出错。**/
/**for (Integer x:list)
if (x%2==0)
list.remove(x);
**/ /**这是第二个方法,是正确的。**/
/**int i=0;
while (i<list.size())
if (list.get(i)%2==0)
list.remove(i);
else
i++;
**/ Iterator<Integer>it=list.iterator();
while (it.hasNext())
if (it.next()%2==0){
it.remove();
//list.add(9);
}
}
}

关于增强的for循环的更多相关文章

  1. 增强的for循环(或foreach)

    增强的for循环(也称为foreach循环):不用下标变量,顺序的訪问整个数组.不能以其它顺序訪问数组,或者改变数组的元素. for(elementType element: arrayRefVar) ...

  2. JAVA笔记18-容器之二增强的for循环(不重要)

    JDK1.5增强的for循环(foreach??)

  3. Java之增强的for 循环

    3. 增强for循环 1) 作用: 对存储对象的容器进行迭代 2)  jdk5以前怎么迭代 3) 增强for循环迭代数组 String [] arr = {"a", "b ...

  4. Java——JDK1.5新增强的for循环

    <1>JDK1.5新增的for循环对于遍历array或collection非常便利. <2>缺陷:        数组:不能方便地访问下标值.        集合:与使用Int ...

  5. 增强的for循环

  6. 增强for循环用法___ArrayList数组实现使用下标最好,LinkedList使用增强型的(转载)

    总结: 1.For-Each循环的缺点:丢掉了索引信息. 当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息. ...

  7. 关于增强for循环

    1 增强for循环增强for循环是for的一种新用法!用来循环遍历数组和集合. 1.1 增强for的语法for(元素类型 e : 数组或集合对象) {}例如:int[] arr = {1,2,3};f ...

  8. Java中增强for循环的用法

    此方法在jdk1.5之后才出现. 1:遍历数组 语法: for (Type value : array) { expression value; } 例子: void Sum() { int[] ar ...

  9. for循环和增强版的for循环

    增强的for循环. 缺点:   对于数组.不能方便的訪问下标值.   对于集合,与使用Interator相比.不能方便的删除集合中的内容(在内部也是调用Interator). 除了简单遍历并读取当中的 ...

随机推荐

  1. 【转】开篇python--明白python文件如何组织,理解建立源文件

    在Python 中引用是非常简单的事情,这里需要清楚三个概念就可以了包.模块.类.类这个就不用说了. 模块对应的是一个.py 文件,那么module_name 就是这个文件去掉.py 之后的文件名,p ...

  2. SVG绘制图形

    一.SVG介绍 1.SVG指可伸缩矢量图片 2.SVG用来定义用于网络的基于矢量的图形 3.SVG使用XML格式定义图形 4.SVG图像在放大或改变尺寸的情况下其图形质量不会有损失 5.SVG是万维网 ...

  3. BZOJ 1087 互不侵犯King 状态压缩DP

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1087 题目大意; 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国 ...

  4. [NOIP2016 DAY1 T2]天天爱跑步-[差分+线段树合并][解题报告]

    [NOIP2016 DAY1 T2]天天爱跑步 题面: B[NOIP2016 DAY1]天天爱跑步 时间限制 : - MS 空间限制 : 565536 KB 评测说明 : 2s Description ...

  5. P1649 [USACO07OCT]障碍路线Obstacle Course

    题目描述 Consider an N x N (1 <= N <= 100) square field composed of 1 by 1 tiles. Some of these ti ...

  6. 树形DP 复习

    树形DP 树形DP:建立在树上的动态规划 一般有两种传递方式:根→叶或叶→根 前者出现在换根DP中,一般操作是求出某一个点的最优解,再通过这一个点推知其他点的最优解. 后者是树形DP的常见形式,一般树 ...

  7. linux下安装redis安装使用

    1.下载redis 下载地址:http://redis.io/download,下载最新稳定版本 2.解压redis 1)  cd redis-x.x.x 2) make 3.启动redis 1) c ...

  8. Sign in with the app-specific password you generated. If you forgot the app-specific password or need to create a new one, go to appleid.apple.com

    iOS打包报错信息如下:Sign in with the app-specific password you generated. If you forgot the app-specific pas ...

  9. 9.Libraries and visibility 库和可见性

    import和liabrary指令可以帮助你创建模块化,可复用的代码.库不仅仅提供API,也是一个私有化单元:库中已下划线(_)开头的类都是对外不可访问的.每个Dart的应用也是一个包,尽管它没有使用 ...

  10. 2017-2018-2 20155224『网络对抗技术』Exp4:恶意代码分析

    原理与实践说明 实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systr ...