1. 程式人生 > 其它 >迭代器(集合獨有的遍歷方式)

迭代器(集合獨有的遍歷方式)

今天給大家講解一下迭代器,這裡的java(迭代器)不是一個集合,它是訪問集合的一個方法,可用於迭代ArrayList和HashSet等集合.

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

修飾語和型別 方法 描述
boolean hasNext() 判斷集合中還有沒有可以被取出的元素,如果有返回true
E next() 去除集合中的下一個元素

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

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

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

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

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

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

  使用迭代器的三種迴圈迭代方式:

  第一種(while迴圈):

List<String> list = new ArrayList<>();
        list.add("可可");
        list.add("兮兮");
        list.add(
"小婷"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }

  第二種 (for-each迴圈):

List<String> list = new ArrayList<>();
        list.add("可可");
        list.add("兮兮");
        list.add("小婷");
        
for (String s : list) { System.out.println(s); }

  第三種 (for迴圈):

List<String> list = new ArrayList<>();
        list.add("可可");
        list.add("兮兮");
        list.add("小婷");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
   }

這裡需要注意,foreach也是增強的for迴圈,它無法訪問陣列下標值,對於集合的遍歷其內部採用的也是Iterator的相關方法,如果只做簡單遍歷讀取,可以減少一些程式碼量,其他情況下不建議使用。

  需要讀取集合中的元素,首用for-each迴圈,雖然它與其他兩者的速度相比,差不了多少,但是從程式碼簡介度來說,for-each首當其選