Iterator(迭代器)、增强for循环

Iterator(迭代器)

java.util.Iterator接口:迭代器(对集合进行遍历)

有两个常用方法:

boolean hasNext();//判断集合中是否有下一个元素,有true,无false
E next();//返回迭代后的下一个元素

Iterator迭代器,是一个借口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊,Collection接口有一个方法,叫

Iterator<E> iterator();

可以返回在此Collection的元素上进行迭代的迭代器

迭代器的使用步骤:

1.使用集合中的方法iterator(),获取迭代器的实现类,使用Iterator接口接收(多态)

2.使用Iterator接口中的方法hasNext(),判断是否有下一个元素

3.使用Iterator接口中的方法next(),取出集合的下一个元素

package commonclass;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class TestIterator01 {
    public static void main(String[] args) {
        Collection<String> arrayList = new ArrayList<>();
        arrayList.add("张三");
        arrayList.add("李四");
        arrayList.add("王五");
        arrayList.add("赵六");
        arrayList.add("田七");

        Iterator<String> iterator = arrayList.iterator();
        while (iterator.hasNext()){
            System.out.print(iterator.next()+"\t");
        }
    }
}

迭代器的实现原理:

增强for循环:底层使用的也是迭代器, 使用for循环的格式,简化了迭代器的书写

是JDK1.5之后出现的新特性

public interface Collection<E> extends Iterable<E>//所有的单列集合都可以使用增强for循环
public interface Iterable<T>//实现此接口允许一个对象是“for-each循环”语句的目标

增强for循环:用来遍历集合和数组

格式 :

for(集合/数组的数据类型 变量名 :集合名/数组名){

sout(变量名);

}

package commonclass;

import java.util.ArrayList;
import java.util.Collection;

public class TestFor_Each01 {
    public static void main(String[] args) {
        int[]  arrays = {1,2,3,4,5};
        for (int array : arrays) {
            System.out.print(array+"\t");
        }

        Collection<String> arrayList = new ArrayList<>();
        arrayList.add("张三");
        arrayList.add("李四");
        arrayList.add("王五");
        arrayList.add("赵六");
        arrayList.add("田七");

        for (String s : arrayList) {
            System.out.print(s+"\t");
        }
    }
}
posted @ 2020-08-09 20:04  DannyBoy~  阅读(257)  评论(0编辑  收藏  举报