Iterator迭代器

2021-03-31  本文已影响0人  felixfeijs

Iterator迭代器

常用方法

返回类型 方法 示意
boolean hasNext() 获取迭代器是否有下一个元素
Object next() 从指针0开始下一个元素的值
- remove() 移除当前next指针的元素

代码示例

package com.felixfei.study.test;

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


/**
 * @author felixfei
 * @version 1.0
 * @date 2021/3/30 20:40
 * @describle 使用迭代器:
 */
public class IteratorTest {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<String>();
        list.add("b");
        list.add("a");
        list.add("c");

        Iterator<String> iterator = list.iterator();

        // 判断是否有下一个元素
        while (iterator.hasNext()) {
            String next = iterator.next();

            if (next.equals("a")) {
                // 移除元素
                iterator.remove();
            }

            System.out.println("当前元素的值=" + next);
        }

        // 移除后需要重新赋值
        iterator = list.iterator();
        System.out.println("是否有元素" + iterator.hasNext());

        while (iterator.hasNext()) {
            System.out.println("当前元素的值=" + iterator.next());
        }

        // 错误遍历方式一 NoSuchElementException
        while (iterator.next() != null) {
            System.out.println(iterator.next());
        }

        // 错误遍历方式二 每当调用 iterator()方法都会返回迭代器对象,所以这种方式都会用新对象的next()位置的值
        while (list.iterator().hasNext()) {
            System.out.println(list.iterator().next());
        }
    }
}


上一篇 下一篇

猜你喜欢

热点阅读