溫馨提示×

如何在Java中自定義迭代器

小樊
132
2024-09-30 03:45:21
欄目: 編程語言

在Java中,要自定義迭代器,您需要按照以下步驟操作:

  1. 創建一個類,該類將實現Iterator接口。
  2. 在類中定義一個私有成員變量,用于存儲集合數據結構(如列表、集合等)。
  3. 實現Iterator接口所需的方法,例如hasNext()、next()remove()。
  4. (可選)實現其他有用的方法,如peek()size()。

下面是一個簡單的自定義迭代器示例,用于遍歷一個整數列表:

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

public class CustomIntegerIterator implements Iterator<Integer> {
    private List<Integer> list;
    private int currentIndex;

    public CustomIntegerIterator(List<Integer> list) {
        this.list = list;
        this.currentIndex = -1;
    }

    @Override
    public boolean hasNext() {
        return currentIndex + 1 < list.size();
    }

    @Override
    public Integer next() {
        if (!hasNext()) {
            throw new IllegalStateException("No more elements to iterate");
        }
        currentIndex++;
        return list.get(currentIndex);
    }

    // Optional: Implement the remove method if needed
    @Override
    public void remove() {
        if (currentIndex < 0) {
            throw new IllegalStateException("No element to remove");
        }
        list.remove(currentIndex);
        currentIndex--;
    }

    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);

        CustomIntegerIterator iterator = new CustomIntegerIterator(numbers);
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}

在這個示例中,我們創建了一個名為CustomIntegerIterator的類,它實現了Iterator接口。我們定義了一個私有成員變量list來存儲整數列表,以及一個currentIndex變量來跟蹤當前遍歷的位置。然后,我們實現了hasNext()、next()remove()方法。最后,在main方法中,我們創建了一個CustomIntegerIterator實例,并使用它遍歷一個整數列表。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女