1. 程式人生 > 程式設計 >一文讀懂Java Iterator(迭代器)

一文讀懂Java Iterator(迭代器)

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

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

一文讀懂Java 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 RunoobTest {
 public static void main(String[] args) {

 // 建立集合
 ArrayList<String> sites = new ArrayList<String>();
 sites.add("Google");
 sites.add("Runoob");
 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 RunoobTest {
 public static void main(String[] args) {

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

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

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

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

Google
Runoob
Taobao
Zhihu

刪除元素

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

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

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

public class RunoobTest {
 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 Iterator(迭代器)的詳細內容,更多關於Java Iterator(迭代器)的資料請關注我們其它相關文章!