java 迭代器(Iterator)

一、前言

在迭代器(Iterator)沒有出現(xiàn)之前,如果要遍歷數(shù)組和集合,需要使用方法。

數(shù)組遍歷,代碼如下:

String[] arr = new String[]{"Java", "Java虛擬機(jī)", "Java中文社群"};
for (int i = 0; i < arr.length; i++) {
    String item = arr[i];
}

集合遍歷,代碼如下:

List<String> list = new ArrayList<String>() {{
    add("Java");
    add("Java虛擬機(jī)");
    add("Java中文社群");
}};
for (int i = 0; i < list.size(); i++) {
    String item = list.get(i);
}

而迭代器的產(chǎn)生,就是為不同類型的容器遍歷,提供標(biāo)準(zhǔn)統(tǒng)一的方法。

迭代器遍歷,代碼如下:

Iterator iterator = list.iterator();
while (iterator.hasNext()) {
    Object object = iterator.next();
    // do something
}

總結(jié):使用了迭代器就可以不用關(guān)注容器的內(nèi)部細(xì)節(jié),用同樣的方式遍歷不同類型的容器。

二、迭代器介紹

迭代器是用來遍歷容器內(nèi)所有元素對象的,也是一種常見的設(shè)計(jì)模式。

迭代器包含以下四個(gè)方法:

  • hasNext() :boolean —— 容器內(nèi)是否還有可以訪問的元素。
  • next() :E —— 返回下一個(gè)元素。
  • remove() :void —— 刪除當(dāng)前元素。
  • forEachRemaining(Consumer) :void —— JDK 8 中添加的,提供一個(gè) lambda 表達(dá)式遍歷容器元素。
    迭代器使用如下:
List<String> list = new ArrayList<String>() {{
    add("Java");
    add("Java虛擬機(jī)");
    add("Java中文社群");
}};
Iterator iterator =  list.iterator();
// 遍歷
while (iterator.hasNext()){
    String str = (String) iterator.next();
    if (str.equals("Java中文社群")){
        iterator.remove();
    }
}
System.out.println(list);    // [Java, Java虛擬機(jī)]

forEachRemaining 使用如下:

List<String> list = new ArrayList<String>() {{
    add("Java");
    add("Java虛擬機(jī)");
    add("Java中文社群");
}};
// forEachRemaining 使用
list.iterator().forEachRemaining(item -> System.out.println(item));

原文鏈接:https://blog.csdn.net/ACE_kk/article/details/126182500

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容