摘要:其實,來源于包,也是屬于集合框架中的一份子,不同于存放單一數據和存放具有映射關系的數據,主要用于集合元素的迭代輸出,所以它的對象又被稱為迭代器。
????上一篇文章中我在集合元素的遍歷中已經有涉及到Iterator的普遍使用方法,但是并沒有對此進行解釋。
????其實,Iterator來源于java.util包,也是屬于Java集合框架中的一份子,不同于Collection(存放單一數據)和Map(存放具有映射關系的數據),Iterator主要用于集合元素的迭代輸出,所以它的對象又被稱為迭代器。
????Iterator的方法包括:
表頭 | 表頭 |
---|---|
boolean hasNext(); | 判斷迭代器是否還有未遍歷的元素 |
E next(); | 返回迭代器中下一未遍歷元素 |
void remove(); | 移除迭代器上一遍歷的元素 |
void forEachRemaining(Consumer action) | 以特定的Lambda表達式遍歷元素 |
注:void forEachRemaining(Consumer action)為Java 8新增的默認方法。
????下面是Iterator的實例化以及各方法的使用方法
Iterator的實例化
Iterator it=c5.iterator();
????Iterator本身不存在容納對象的能力,它的對象必須依附于Collection對象。
同時,一個Iterator對象只能使用一次,復用會導致java.util.ConcurrentModificationException。我還沒搞懂為什么會這樣,應該是關于設計模式的內容。
boolean hasNext();以及next();
while(it.hasNext()) { System.out.println(it.next()); }
輸出:5
void remove();
while(it.hasNext()) { System.out.println(it.next()); it.remove(); }
輸出:5
????remove方法要在next方法之后調用,次序調換會導致java.lang.IllegalStateException。
void forEachRemaining(Consumer action);
Iterator it=c5.iterator(); it.forEachRemaining(obj->System.out.println(obj));
輸出:5
????通過特定的Lambda表達式格式輸出元素。
???? Iterator接口就寫到這里了。通常我都是用它作為測試Collection對象的,好處就是不用通過循環遍歷,代碼量會少一點。但是正式使用我還是會使用循環遍歷Collection對象,雖則代碼量多,但是可以省掉一個對象的內存空間,能省一點是一點,哈哈!
????如果你還想了解關于java集合的內容,歡迎點擊https://segmentfault.com/a/1190000019071471
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74413.html
摘要:如果需要創建對象,則必須與一個被迭代的集合。這是一個有狀態的方法該方法用于保證對該流的后續訪問中最大允許訪問的元素個數??梢詫显剡M行整體的聚集操作。 Java集合分為Set(無序、不可重復)、List(有序、重復)、Queue(隊列)和Map(映射關系) Java集合概述 數組元素既可以是基本類型的值,也可以是對象(實際保存對象的引用變量)集合只能保存對象(實際保存對象的引用變量...
摘要:集合框架的基本接口類層次結構其中表示接口,表示實現類和在實際開發中,需要將使用的對象存儲于特定數據結構的容器中。實例是迭代器,擁有兩個方法方法迭代器用于遍歷集合元素。返回值則是轉換后的數組,該數組會保存集合中的所有元素。 Java Collections Framework是Java提供的對集合進行定義,操作,和管理的包含一組接口,類的體系結構。 Java集合框架的基本接口/類層次結構...
摘要:集合的元素個數為輸出集合的元素個數為在本代碼中,新建一個局部變量保存的成員方法返回的值,輸出得到因為只有一個元素。注若遍歷集合的同時改變集合,將引發異常。 ????在概述里面也說過:Collection是java集合兩大接口之一,旗下有三大子接口:Set(元素不能重復,且無序)、Queue、List(元素可重復,且有序)。????Collection來源于java.util包,主要方法...
閱讀 3904·2021-11-22 09:34
閱讀 1490·2021-11-04 16:10
閱讀 1721·2021-10-11 10:59
閱讀 3271·2019-08-30 15:44
閱讀 2036·2019-08-30 13:17
閱讀 3445·2019-08-30 11:05
閱讀 744·2019-08-29 14:02
閱讀 2618·2019-08-26 13:34