迭代器模式:一个个遍历

迭代器模式主要用于遍历集合类中的元素,让我们能够更方便地访问和操作集合中的每一个元素。Java内部集合就实现了迭代器模式。

示例代码:使用ArrayList中的iterator

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

public class IteratorPatternDemo {
   public static void main(String[] args) {
      ArrayList<String> names = new ArrayList<>();

      // 添加一些元素
      names.add("Alice");
      names.add("Bob");
      names.add("Charlie");

      // 获取迭代器
      Iterator<String> iterator = names.iterator();

      // 遍历集合中的元素并输出
      while (iterator.hasNext()) {
         String name = iterator.next();
         System.out.println(name);
      }
   }
}

也可以通过IterableIterator实现自定义的迭代器:

示例代码:自定义迭代器

import java.util.Iterator;

public class MyIterable implements Iterable<Integer> {
    private int[] data;

    public MyIterable(int[] arr) {
        data = arr;
    }

    @Override
    public Iterator<Integer> iterator() {
        return new MyIterator();
    }

    private class MyIterator implements Iterator<Integer> {
        private int index;

        @Override
        public boolean hasNext() {
            return index < data.length;
        }

        @Override
        public Integer next() {
            if (!hasNext()) {
                throw new IndexOutOfBoundsException("Reached end of array.");
            }
            return data[index++];
        }

        @Override
        public void remove() {
            throw new UnsupportedOperationException("Cannot remove elements from immutable array.");
        }
    }
}
posted @ 2023-06-09 11:48  穆海如枫  阅读(21)  评论(0)    收藏  举报