Iterator接口

来源:互联网 发布:抢票软件下载 编辑:程序博客网 时间:2024/05/08 23:02

Iterator接口

在类集中提供了一下四种的常见输出方式:

 ·Iterator:迭代输出,是使用最多的输出方式

 ·ListIterator:是Iterator的子接口,专门用于输出List中的内容

 ·foreach输出:JDK1.5之后提供的新功能,可以输出数组或集合

 ·Enumeration输出:是一旧的接口,功能与Iterator类似。

 

·集合输出的标准操作:

·在使用集合输出的时候必须形成一下的一个思路:“只要是碰到了集合输出的操作,就一定使用Iterator接口”,因为这是最标准的做法

 ·Iterator接口的操作原理

·Iterator是专门的迭代输出接口,所谓的迭代输出就是将元素一个个进行那个判断,判断其是否有内容,如果有内容则把内容取出:开头à判断à取走

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

 

Iterator<E>Iterator()

使用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的时候最好不要删除数据

0 0