【Java類集】_Iterator介面筆記(執行個體親測)

來源:互聯網
上載者:User

【Java類集】_Iterator介面筆記

本章目標:
掌握集合輸出的標準操作
掌握Iterator介面的主要作用及使用注意事項

在集合的操作中支援以下幾種方式:

Iterator
ListIterator
foreach輸出
Enumeration輸出

3、具體內容

Iterator介面簡介

集合輸出的標準操作:

"在使用集合輸出的時候必須以下的思路:只要是碰到了集合輸出的操作,就一定使用Iterator介面,因為這是最標準的做法。"

Iterator介面的操作原理:

Iterator是專門的迭代輸出介面,所謂的迭代輸出就是將元素一個個進行判斷,判斷是否有內容,如果有內容則把內容取出

對於Iterator而言,因為其本身是一個介面,所以要想執行個體化則必須依靠Collection介面完成。

Iterator<E> iterator()

import java.util.Iterator;import java.util.List;import java.util.ArrayList;public class IteratorDemo01{    public static void main(String[] args){        List<String> allList = new ArrayList<String>();        allList.add("Hello");        allList.add("_");        allList.add("World!!!");        Iterator<String> iter = all.iterator();        while(iter.hasNext()){    //判斷是否有內容            System.out.println(iter.next());    //輸出內容        }    }}

輸出:

Hello
_
World!!!

以上操作為Iterator的標準操作做法
在Iterator介面中提供了remove()方法,此方法的功能是刪除當前的對象。

import java.util.List;import java.util.Iterator;import java.util.ArrayList;public class IteratorDemo02{    public static void main(String[] args){        List<String> all = new ArrayList<String>();        all.add("hello");        all.add("_");        all.add("world!!!");        Iterator<String> iter = all.iterator();        while(iter.hasNext()){            String str = iter.next();            if("_".equals(str)){                iter.remove();    //刪除元素            }else{                System.out.println(str);    //輸出內容            }        }        System.out.println("刪除之後的集合:"+all);    }}

輸出:

hello
world!!!
刪除之後的集合:[hello, world!!!]

在實際上Iterator是很少調用刪除操作的,因為其本身的功能是輸出內容。當然,對於刪除操作也有以下的注意點:
List介面本身存在刪除的方法:remove()
如果在使用迭代輸出的過程中使用了List中的remove()執行刪除操作,則代碼將出現問題。

import java.util.List;import java.util.Iterator;import java.util.ArrayList;public class IteratorDemo02{    public static void main(String[] args){        List<String> all = new ArrayList<String>();        all.add("hello");        all.add("_");        all.add("world!!!");        Iterator<String> iter = all.iterator();        while(iter.hasNext()){            String str = iter.next();            if("_".equals(str)){                all.remove();    //刪除元素            }else{                System.out.println(str);    //輸出內容            }        }        System.out.println("刪除之後的集合:"+all);    }}

輸出:

IteratorDemo02.java:14: 找不到符號
符號: 方法 remove()
位置: 介面 java.util.List<java.lang.String>
                                all.remove();   //刪除元素
                                   ^
1 錯誤

4、總結

Iterator介面的功能是從前向後輸出,屬於單向輸出
Iterator的主要功能就是完成迭代輸出操作的

在使用Iterator的時候最好不要刪除資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.