遍历集合元素

遍历集合元素

Iterator接口

Iterator:迭代器接口,它本身不是容器

  • 集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前

内部方法

  1. hasNext()

    判断是否还有下一个元素

  2. next()

    • 指针下移
    • 将下移以后集合位置上的元素返回
    • 类似指针操作,最开始指向集合第一个元素前的那个空元素,调用一次此方法指针下移一次
  3. remove()

    在遍历的时候删除集合中的元素

  • 此方法不同于集合直接调用remove()
  • 如果还未调用next()或在上一次调用next()方法之后已经调用remove方法,再调用remove()方法都会报IllegalStateException错误
Collection coll = new ArrayList();
        coll.add("Tom");
        coll.add("Jack");
        coll.add("Ann");

        Iterator iterator = coll.iterator();
        while(iterator.hasNext()){
            Object next = iterator.next();
            if(next.equals("Tom")){
                iterator.remove();
            }
        }

遍历集合

利用到Iterator中的hasNext()方法和next()方法

public void test7(){
        Collection coll = new ArrayList();
        coll.add("Tom");
        coll.add("Jack");
        coll.add("Ann");

        Iterator iterator = coll.iterator();
        while(iterator.hasNext()){
            Object next = iterator.next();
            if(next.equals("Tom")){
                iterator.remove();
            }
        }

        //需要一个全新的迭代器对象
        Iterator iterator1 = coll.iterator();
        while (iterator1.hasNext()){
            System.out.println(iterator1.next());
        }
    }

运行结果

foreach循环

foreach循环迭代访问Collection和数组

格式

for(集合/数组中元素的类型 局部变量 :集合/数组对象){

}

举例

for(Object obj : coll){
            System.out.println(obj);
        }

过程

  • 取coll中第n个元素赋给obj,之后打印obj
  • 内部仍然调用了迭代器

猜你喜欢

转载自www.cnblogs.com/CrabDumplings/p/13386536.html