2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁常見問題正文

我們能自己寫一個容器類,然后使用for-each循環嗎?

更新時間:2023-08-01 來源:黑馬程序員 瀏覽量:

IT培訓班

  在Java中,我們可以自己編寫一個容器類,并且可以使用for-each循環(也稱為增強型for循環或foreach循環)遍歷容器中的元素。要實現這一點,我們的容器類必須滿足以下條件:

  1.實現Iterable接口

  我們的容器類必須實現java.lang.Iterable接口。該接口包含一個名為iterator() 的方法,該方法返回一個實現了java.util.Iterator接口的對象,用于遍歷容器中的元素。

  2.實現Iterator接口

  我們的容器類還必須實現java.util.Iterator接口。Iterator接口定義了幾個方法,如hasNext()(判斷是否有下一個元素)、next()(返回下一個元素)和remove()(從容器中移除當前元素,可選操作)。

  接下來筆者用一個具體的代碼示例,演示下如何創建一個自定義容器類并使用for-each循環遍歷它:

import java.util.Iterator;

// 自定義容器類
class MyContainer<T> implements Iterable<T> {
    private T[] elements;
    private int size;
    
    @SuppressWarnings("unchecked")
    public MyContainer(int capacity) {
        elements = (T[]) new Object[capacity];
        size = 0;
    }
    
    public void add(T element) {
        elements[size++] = element;
    }

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

    // 自定義迭代器類
    private class MyIterator implements Iterator<T> {
        private int currentIndex = 0;

        @Override
        public boolean hasNext() {
            return currentIndex < size;
        }

        @Override
        public T next() {
            return elements[currentIndex++];
        }
    }
}

public class Main {
    public static void main(String[] args) {
        MyContainer<String> container = new MyContainer<>(3);
        container.add("Apple");
        container.add("Banana");
        container.add("Orange");

        // 使用 for-each 循環遍歷容器
        for (String fruit : container) {
            System.out.println(fruit);
        }
    }
}

  輸出結果:

Apple
Banana
Orange

  在上述例子中,我們創建了一個自定義容器類MyContainer,實現了Iterable接口,并提供了一個內部類 MyIterator實現了Iterator接口。這樣,我們就可以使用for-each循環來遍歷容器中的元素。

分享到:
在線咨詢 我要報名
和我們在線交談!