迭代器(集合獨有的遍歷方式)
阿新 • • 發佈:2021-11-18
今天給大家講解一下迭代器,這裡的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首當其選