首页 > 代码库 > java中的iterator迭代器

java中的iterator迭代器

Collection的iterator方法返回一个实现了一个Iterator接口的对象

Iterator接口中包含三个方法:

1)E next()

2)boolean hasNext()

3)void remove

具体用法:

Iterator<Integer> integers=collection.iterator();
        while(integers.hasNext()){
            System.out.print(integers.next()+" ");
        }

可以通过调用hasNext()判断是否达到集合的末尾

调用next()方法返回访问到的元素

但是也可以通过foreach循环实现上述的方法

for(Integer i:collection){
            System.out.print(i+" ");
        }

 编译器简单的将foreach循环翻译为带有迭代器的循环

foreach使用是有条件的,即其必须和实现了Iterable接口的对象一起工作,Collection接口扩展了Iterable接口,所以集合可以使用foreach循环

 

Iterator的作用:能够将遍历序列与序列底层的结构分开,通过它统一了对容器的访问

public class AddingGroups {
    public static void display(Iterator<String>iterator){
        while(iterator.hasNext()){
            String s=iterator.next();
            System.out.print(s+" "+" ");
        }
        System.out.println();
    }
    public static void main(String[] args) {
       List<String> list1=new ArrayList<>(Arrays.asList("a","b","c"));
       List<String> list2=new LinkedList<>(Arrays.asList("d","e","f"));
       Set set1=new HashSet<>(Arrays.asList("g","h","i"));
       Set set2=new TreeSet<>(Arrays.asList("j","k","l"));
       display(list1.iterator());
       display(list2.iterator());
       display(set1.iterator());
       display(set2.iterator());
    }
}

通过iterator可以不管集合的类型信息了

 

java中的iterator迭代器