增强for

内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。

格式:

for(元素的数据类型  变量 : Collection集合or数组){

}

它用于遍历Collection和数组。通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作。

* foreach:增强for循环,一般用于遍历集合或者数组

* 格式:

* for(元素的类型 变量 : 集合或者数组对象) {

* 可以直接使用变量;

* }

注意:在增强for循环中不能修改集合,否则会出现并发修改异常。

foreach比迭代器遍历集合的优势在于代码更加的简洁,更不容易出错,不用关心下标的起始值和终止值。

迭代器

1. Iterator专门用于对集合进行遍历使用的

* 2. 哪些集合可以使用迭代器进行遍历?

*      Collection: 可以

*      List: 可以

*      Set: 可以

*      Map: 不可以*  Map-->Set

//使用迭代器遍历ArrayList集合
Iterator<String> listIt = list.iterator();
21 while(listIt.hasNext()){
22 System.out.println(listIt.hasNext());
23 }
24 //使用迭代器遍历Set集合
25 Iterator<String> setIt = set.iterator();
26 while(setIt.hasNext()){
27 System.out.println(listIt.hasNext());
28 }
29 //使用迭代器遍历LinkedList集合
30 Iterator<String> linkIt = linkList.iterator();
31 while(linkIt.hasNext()){
32 System.out.println(listIt.hasNext());
33 }
void remove();//移除元素 }

1. Iterator专门用于对集合进行遍历使用的

* 2. 哪些集合可以使用迭代器进行遍历?

*      Collection: 可以

*      List: 可以

*      Set: 可以

*      Map: 不可以*  Map-->Set

* 3. Iterator , 是一个接口, 调用itertator()可以得到该接口类型的对象

*   在集合定义中, 有实现了Iterator接口的内部类的集合, 可以使用迭代器

*   实现了Iterable接口的集合可以使用迭代器进行遍历

*

* 4. Iterator: 接口, 迭代器, 用于对集合(Collection)进行遍历

*    Iterable: 接口, 有一个抽象方法叫iterator(), 返回结果是一个Iterator对象(前提是在集合中定义了内部类, 该类实现了Iterator接口)

*    iterator(): 源头是Iterable接口, 返回一个迭代器对象

*

* 5. foreach, 增强for循环, jdk1.5之后可以使用

*      foreach循环底层使用了迭代器的方式

*

* 6. foreach和迭代器Iterator的区别

*      foreach可以遍历数组, 迭代器不能遍历数组;

*

* 7. 迭代器中的方法

*   hasNext(): 用于判断迭代器中是否还有下一个元素, 有返回true, 没有返回false

*   next(): 用于获取下一个元素

*   remove(): 删除元素

*      前提是必须先调用next方法, 而且remove方法只能在next方法后被调用一次, 否则, 抛出异常: IllegalStateException

*   统一个迭代器只能被使用一次, 使用一次之后, 指针已经指向末尾了, 再调用hasNext方法时, 返回false

迭代器和增强for的更多相关文章

  1. Java集合、Iterator迭代器和增强for循环整理

    集合 集合,集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据 1.1      ArrayList集合存储元素 pac ...

  2. day06(Collection,List,ArrayList,LinkedList,iterator迭代器,增强for)

    Collection   接口    方法实现 boolean  add(Object o);//添加 boolean  remove(Object o);//移除 修改方法   让实现类自己去实现修 ...

  3. 18_集合框架_第18天_集合、Iterator迭代器、增强for循环 、泛型_讲义

    今日内容介绍 1.集合 2.Iterator迭代器 3.增强for循环 4.泛型 01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public stati ...

  4. 集合、迭代器、增强for循环、泛型

    1集合 集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据. 1.1ArrayList集合存储元素(复习) 例: pub ...

  5. java基础(18):集合、Iterator迭代器、增强for循环、泛型

    1. 集合 1.1 集合介绍 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数 ...

  6. 迭代器和增强for循环

    iterator 迭代:即Collection集合元素的通过获取方法,在获取元素之前先要判断集合中有没有元素,如果有就把这个元素取出来,然后在判断,如果还有就再去除卡u,一直把集合中的所有元素全部拿出 ...

  7. [Day18]集合框架Collection、迭代器、增强for循环以及泛型

    1.集合 1.1集合-本身是一个存储的容器 集合类的基本接口是Collection接口,这个接口有两个基本方法 (1)boolean add(E element) 用于向集合中添加元素,如果添加元素确 ...

  8. set集合的遍历(基于迭代器和增强for循环,没有一般的for循环)

    赋:开发项目中见到的代码 Java中Set集合是一个不包含重复元素的Collection,首先我们先看看遍历方法 package com.sort; import java.util.HashSet; ...

  9. java基础第十二篇之集合、增强for循环、迭代器和泛型

    Collection接口中的常用方法: * 所有的子类子接口都是具有的 * 集合的方法:增删改查 * * public boolean add(E e);//添加元素 返回值表示是否添加成功 * pu ...

随机推荐

  1. 20155219 2016-2017-2 《Java程序设计》第4周学习总结

    20155219 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 抽象方法与抽象类 如果某方法区块中没有任何程序代码操作,可以使用abstract在class ...

  2. freeSSHd (Auth fail)错误!以及Xmanager的(ssh服务器拒绝了密码,请再试一次)错误!

    参考文档:http://blog.csdn.net/zhangliang_571/article/details/45598939 (Auth fail) 以及(ssh服务器拒绝了密码,请再试一次)  ...

  3. currentStyle&getComputedStyle获取属性

    方法如下: function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; // IE 中的方法 } ...

  4. HDU2021发工资咯:)

    Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处 ...

  5. protobuf GetExtension

    get extention values from  proto file value, err := proto.GetExtension(imp, openrtb.E_Imp) if err != ...

  6. Distributed Phoenix Chat with PubSub PG2 adapter

    转自:https://www.poeticoding.com/distributed-phoenix-chat-with-pubsub-pg2-adapter/ In this article we’ ...

  7. 深入详解美团点评CAT跨语言服务监控(九)CAT管理平台MVC框架

    在第2章我们讲到,服务器在初始化CatServlet 之后, 会初始化 MVC,MVC也是继承自AbstractContainerServlet , 同样也是一个 Servlet 容器,这是一个非常古 ...

  8. http1.1 和 http2 的协议对比测试

    http1.1 和 http2 的协议对比测试 http 协议发展了很多年,目前最为流行的是 http 2. 发现有些网站很流行的网站用的 http1.1, 询问后原来是因为有特殊用途. https: ...

  9. 20165308 2017-2018-2 《Java程序设计》第三周学习总结

    20165308 2017-2018-2 <Java程序设计>第三周学习总结 知识点 类 构造方法与对象的创建 类与程序的基本结构 参数传值 对象的组合 实力成员与类成员 方法重载 thi ...

  10. Linux中硬盘物理扇区与文件系统文件对应关系(转)

    1               概述 系统读写文件过程中,如下面内核打印信息,报告读写某个扇区错误.那么我们如何能够通过sector找到读写哪个文件错误? kernel: end_request: I ...