增强的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. BBS论坛博客系统

    目录 BBS网站需求分析 BBS数据库设计 BBS用户登录 BBS用户注册 BBS网站首页 BBS个人首页 后台管理系统搭建 网站全部源码

  2. Nodejs学习资源汇总

    Node.js v6.3.1 Documentation https://nodejs.org/dist/latest-v6.x/docs/api/​ npm官网  https://www.npmjs ...

  3. 【Hibernate步步为营】--核心对象+持久对象全析(一)

    引言         上篇博客对Hibernate进行了基本的解析.并分析了它的一些特性. Hibernate可以如此的流行也是由于它有诸多长处,不论什么事物都有两面性.Hibernate尽管流行.可 ...

  4. post请求体过大导致ngx.req.get_post_args()取不到参数体的问题

    http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size 该地址对于client_body_buf ...

  5. mysql数据库创建和权限分配

    查询安装路径: whereis mysql连接mysql: mysql -u root -p第一步:创建用户CREATE USER 'claim_prod'@'%' IDENTIFIED BY 'Pa ...

  6. 静态工厂方法和实例工厂方法及普通的bean

    容纳你的bean  bean工厂:最简单的容器,提供了基础的依赖注入支持.创建各种类型的Bean.  应用上下文(ApplicationContext):建立在bean工厂基础之上,提供系统架构服务. ...

  7. Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值

    大家都知道Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?一般的做法是将该java类封装称为一个JavaBean,即封装该私有属 ...

  8. day79

    昨日回顾 昨日回顾: cookie: -是什么?存储在客户端浏览器上的键值对 -干啥用的?记录状态 -django中使用: -设置值: -HttpResponse对象,obj.set_cookie(k ...

  9. 02-Maven安装配置

    1.Maven下载 2.Maven依赖 3.安装Maven 4.Maven目录

  10. Hive JDBC:Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”

    今天使用JDBC来操作Hive时,首先启动了hive远程服务模式:hiveserver2 &(表示后台运行),然后到eclipse中运行程序时出现错误: Permission denied: ...