java学习笔记21(迭代器)

时间:2019-03-21
本文章向大家介绍java学习笔记21(迭代器),主要包括java学习笔记21(迭代器)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

java中有很多集合,内部有各种的存储的方法,取出的方法也各不相同,那么有没有一种通用的方法来取出来呢?

java提供的遍历集合元素的方法有两种:

  1.for-each结构(增强型for循环)

    格式: for(Object obj:collection)System.out.println(obj);//表示一行输出一个元素 用法举例:

import java.util.ArrayList;

public class Demo2 {
    public static void main(String[] args) {
        forlxDemo();
    }
    private static void  forlxDemo(){
        ArrayList<String> arr=new ArrayList();
        arr.add("abc");
        arr.add("def");
        arr.add("ghi");
        for (String s : arr) {//增强性for循环,优点:代码少了,方便遍历,缺点:没有下标,无法操作集合的元素
            System.out.println(s);
        }
    }
}

  2.iterator(迭代器)

     迭代器:Iterator接口,翻译成中文是迭代器;典型用法如下

Iterator it = c.iterator();//用于创建一个迭代器对象
while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素,如果有返回true。Iterator中的next方法返回迭代其中的下一个元素
        Object next =  it.next();//取出下一个元素
}

举例说明:

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

public class Demo1 {
    public static void main(String[] args) {
        IteratorDemo();
    }

    private static void IteratorDemo() {
        //集合可以指定存储类型,也可以不写
        //集合中可以存储任意类型的对象,但是只能存储同一种类型的
        //当不指定存储类型,集合内存储不同数据类型的对象时,默认的存储类型为Object类型,Object为所有类的祖宗
        Collection c=new ArrayList();
        c.add("hello");
        c.add("java");
        Iterator it = c.iterator();//用于创建一个迭代器对象
        while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素
            String str = (String) it.next();//it.next()默认返回Object类型,强转为String类型
       /*if(str.equals("hello")){//迭代器的并发异常,不允许在迭代过程中,修改集合,这段代码会报错,
          c.add("world");
        }*/
System.out.println(str); } } }