Java Iterator(迭代器)

Java Iterator(迭代器)

Java 集合框架

Java Iterator(迭代器)不是一個集合,它是一種用於訪問集合的方法,可用於迭代 ArrayList 和 HashSet 等集合。

Iterator 是 Java 迭代器最簡單的實現,ListIterator 是 Collection API 中的介面, 它擴充套件了 Iterator 介面。

迭代器 it 的兩個基本操作是 next 、hasNext 和 remove。

呼叫 it.next() 會返回迭代器的下一個元素,並且更新迭代器的狀態。

呼叫 it.hasNext() 用於檢測集合中是否還有元素。

呼叫 it.remove() 將迭代器返回的元素刪除。

Iterator 類位於 java.util 包中,使用前需要引入它,語法格式如下:

import java.util.Iterator; // 引入 Iterator 類

獲取一個迭代器

集合想獲取一個迭代器可以使用 iterator() 方法:

例項

// 引入 ArrayList 和 Iterator 類
import java.util.ArrayList;
import java.util.Iterator;

public class itread01Test {
    public static void main(String[] args) {

        // 建立集合
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("itread01");
        sites.add("Taobao");
        sites.add("Zhihu");

        // 獲取迭代器
        Iterator<String> it = sites.iterator();

        // 輸出集合中的第一個元素
        System.out.println(it.next());
    }
}

執行以上程式碼,輸出結果如下:

Google

迴圈集合元素

讓迭代器 it 逐個返回集合中所有元素最簡單的方法是使用 while 迴圈:

while(it.hasNext()) {
    System.out.println(it.next());
}

以下輸出集合 sites 中的所有元素:

例項

// 引入 ArrayList 和 Iterator 類
import java.util.ArrayList;
import java.util.Iterator;

public class itread01Test {
    public static void main(String[] args) {

        // 建立集合
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("itread01");
        sites.add("Taobao");
        sites.add("Zhihu");

        // 獲取迭代器
        Iterator<String> it = sites.iterator();

        // 輸出集合中的所有元素
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

執行以上程式碼,輸出結果如下:

Google
itread01
Taobao
Zhihu

刪除元素

要刪除集合中的元素可以使用 remove() 方法。

以下例項我們刪除集合中小於 10 的元素:

例項

// 引入 ArrayList 和 Iterator 類
import java.util.ArrayList;
import java.util.Iterator;

public class itread01Test {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<Integer>();
        numbers.add(12);
        numbers.add(8);
        numbers.add(2);
        numbers.add(23);
        Iterator<Integer> it = numbers.iterator();
        while(it.hasNext()) {
            Integer i = it.next();
            if(i < 10) {  
                it.remove();  // 刪除小於 10 的元素
            }
        }
        System.out.println(numbers);
    }
}

執行以上程式碼,輸出結果如下:

[12, 23]

Java 集合框架