增强的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. SASS对css的管理

    一.SASS简介 SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了SASS的主要用法.我的目标是,有了这篇文章,日常的一般 ...

  2. str操作方法

    s = 'dsj,fhk,je,f' # s1 = s.split(',') # print(s1) s = 'aleX leNb' s1 = s.strip() print(s1) s2 = s[2 ...

  3. 三、并行编程 - Task同步机制。TreadLocal类、Lock、Interlocked、Synchronization、ConcurrentQueue以及Barrier等

    在并行计算中,不可避免的会碰到多个任务共享变量,实例,集合.虽然task自带了两个方法:task.ContinueWith()和Task.Factory.ContinueWhenAll()来实现任务串 ...

  4. java通过反射调用有参数的方法

    public static void eachCfg(Class Initclass,String taskType){ Field[] fields = Initclass.getDeclaredF ...

  5. Sql注入测试--Sqlmap

    慕课网sqlmap学习笔记: 一.SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 例如 (1)在url上 ...

  6. mysql用户创建与授权

    一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户 ...

  7. CentOS7下账号与用户

    /etc/passwd用户记录文件,文件记录着ID和账号与一般身份用户的对应关系 用户至少会有2个ID,用户ID(UserID简UID)和用户组ID(GroupID简GID). /etc/group用 ...

  8. JAVA 对基础知识的加强

    一.我们在写类的时候.设置字段的时候含义: 简单的javabean类: package jd.com.vo; import jd.com.mybaitstest.account; public cla ...

  9. P3195 [HNOI2008]玩具装箱TOY

    列出DP方程式:设f[i]表示分组完前i件物品的最小花费,为方便计算,设sum[i]表示是前i件物品的长度和. f[i]=min(f[j]+(sum[i]-sum[j]+i-j-L-1)^2) [0& ...

  10. drupal 7 连接多个数据库

    Drupal7系统,重写了数据库操作内核,其强大的功能无需多言.一次偶然的机会,需要提取Drupal默认安装数据库之外的一个数据库中的数据 ,可谓是绞尽脑汁,上网查阅最后终于找到了一个笨而又合适的方法 ...