迭代器和增强for

增强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

上一篇:mini2440裸机音乐播放器(非常久曾经的笔记)


下一篇:centos7搭建时间服务器