Java 类集 _Iterator 接口

来源:互联网 发布:获取网站点击数据 编辑:程序博客网 时间:2024/05/16 05:33

1、掌握集合输出的标准操作

2、掌握Iterator 接口的主要作用及使用注意事项

在集合的操作中支持以下几种方式:

Iterator

ListIterator

foreach 输出

Enumeration 输出


对于Iterator 而言,因为其本身是一个接口,所以要想实例化则必须依靠 Collection 接口完成。

Iterator<E> iterator()
import java.util.List ;import java.util.ArrayList ;import java.util.Iterator ;public class IteratorDemo01{public static void main(String args[]){List<String> all=  new ArrayList<String>() ;// all.add("hello") ;all.add("_") ;all.add("world") ;Iterator<String> iter = all.iterator() ;// 为Iterator接口实例化while(iter.hasNext()){// 判断是否有内容System.out.println(iter.next()) ;// 输出内容}}};
以上的操作代码属于Iterator 的标准做法

在Iterator 接口中提供了remove() 方法的功能是删除当前的对象。

import java.util.List ;import java.util.ArrayList ;import java.util.Iterator ;public class IteratorDemo02{public static void main(String args[]){List<String> all=  new ArrayList<String>() ;// all.add("hello") ;all.add("_") ;all.add("world") ;Iterator<String> iter = all.iterator() ;// 为Iterator接口实例化while(iter.hasNext()){// 判断是否有内容String str = iter.next() ;if("_".equals(str)){iter.remove() ;// 删除元素}else{System.out.println(str) ;// 输出内容}}System.out.println("删除之后的集合:" + all) ;}};
在实际中Iterator 是很少调用删除操作的,因为其本身的功能就是输出内容。当然,对于删除操作也有以下的一个注意点:

List 接口本身存在删除方法:remove

如果在使用迭代输出的过程中使用了List 中的 remove() 执行删除操作,则代码将出现问题。

import java.util.List ;import java.util.ArrayList ;import java.util.Iterator ;public class IteratorDemo03{public static void main(String args[]){List<String> all=  new ArrayList<String>() ;// all.add("hello") ;all.add("_") ;all.add("world") ;Iterator<String> iter = all.iterator() ;// 为Iterator接口实例化while(iter.hasNext()){// 判断是否有内容String str = iter.next() ;if("_".equals(str)){all.remove(str) ;// 删除元素}else{System.out.println(str) ;// 输出内容}}System.out.println("删除之后的集合:" + all) ;}};
在使用Iterator 输出时,不要使用集合类中的remove() 方法,而只能使用 Iterator 接口中的 remove() 方法。

总结:

1、Iterator 接口的功能是从前向后输出,属于单向的输出

2、Iterator 的主要功能就是完成迭代输出操作的

3、在使用 Iterator 的时候最了不要删除数据