摘要:集合的遍歷使用主要用于遍歷集合中的元素,因此創(chuàng)建的對象是一個迭代器。提供的四個方法如果迭代器的集合還沒有被遍歷完,返回。
集合的遍歷
使用Iterator
Iterator主要用于遍歷集合中的Collection元素,因此Iterator創(chuàng)建的對象是一個迭代器。
Iterator提供的四個方法
boolean hasNext(): 如果迭代器的集合還沒有被遍歷完,返回ture。
Object next():返回集合里的下一個元素。
void remove():刪除集合里上一次next方法返回的元素。
void forEachRemaining(Consumer action):這個是java
8為Iterator新增的默認(rèn)方法,該方法可使用Lambda表達(dá)式遍歷所有的集合元素。
next方法
import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * * 使用jdk8中的iterator遍歷集合; */ public class IteraorTest { public static void main(String[] args) { List books=new ArrayList<>(); books.add("fengk"); books.add("niaho"); Iterator it=books.iterator(); while (it.hasNext()){ it.next(); if(books.equals("fengk")){ it.remove(); } System.out.println(it.next()); } } } > 輸出結(jié)果 >niaho
Iterator只用于遍歷集合,本身本身并不具有承裝對象的能力。如果需要就要創(chuàng)建Iterator對象,則必須有一個被迭代的集合。Iterator必須依附于Collection對象,若有一個Iterator對象,則必然有一個與之關(guān)聯(lián)的Collection對象。
使用Lambda表達(dá)式遍歷Iterator
import java.util.Collection; import java.util.HashSet; import java.util.Iterator; /** * */ public class IteratorEach { public static void main(String[] args) { // 創(chuàng)建一個集合 Collection books=new HashSet<>(); books.add("java"); books.add("c#"); Iterator it=books.iterator(); // 使用Lambda表達(dá)式遍歷所有的集合 it.forEachRemaining(obj->System.out.println(obj)); } } 輸出結(jié)果 c# java
使用foreach遍歷集合元素
import java.util.Collection; import java.util.HashSet; import java.util.Iterator; public class ForeachTest { public static void main(String[] args) { // 創(chuàng)建一個集合 Collection books=new HashSet<>(); books.add("java"); books.add("c#"); for(Object obj:books){ // 此處的books變量也不是集合的本身元素 String book=(String)obj; System.out.println(book); if (book.equals("java")){ books.remove(book); } } System.out.println(books); } }
for循環(huán)中的迭代變量也不是集合元素本身,系統(tǒng)只是以此把集合元素的值賦值給迭代變量,因此for循環(huán)中修改的迭代變量的值是也是沒有任何意義。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/68471.html
摘要:第三階段常見對象的學(xué)習(xí)集合框架概述和集合的遍歷一集合框架的概述集合的由來如果一個程序只包含固定數(shù)量的且其生命周期都是已知的對象,那么這是一個非常簡單的程序。進(jìn)而它們的遍歷方式也應(yīng)該是不同的,最終就沒有定義迭代器類。 第三階段 JAVA常見對象的學(xué)習(xí) 集合框架概述和集合的遍歷 (一) 集合框架的概述 (1) 集合的由來 如果一個程序只包含固定數(shù)量的且其生命周期都是已知的對象,那么這是一...
摘要:接口也是集合中的一員,但它與接口有所不同,接口與接口主要用于存儲元素,而主要用于迭代訪問即遍歷中的元素,因此對象也被稱為迭代器。迭代器的實現(xiàn)原理我們在之前案例已經(jīng)完成了遍歷集合的整個過程。 【Collection、泛型】 主要內(nèi)容 Collection集合 迭代器 增強(qiáng)for 泛型 教學(xué)目標(biāo) [ ] 能夠說出集合與數(shù)組的區(qū)別 [ ] 說出Collection集合的常用功能 [ ]...
摘要:我們都接觸這些集合類,這些在包的集合類就都是快速失敗的而包下的類都是安全失敗,比如。安全失敗明白了什么是快速失敗之后,安全失敗也是非常好理解的。最后說明一下,快速失敗和安全失敗是對迭代器而言的。 什么是快速失敗(fail-fast)和安全失敗(fail-safe)?它們又和什么內(nèi)容有關(guān)系。以上兩點就是這篇文章的內(nèi)容,廢話不多話,正文請慢用。 我們都接觸 HashMap、ArrayLis...
摘要:第三階段常見對象的學(xué)習(xí)集合框架接口按照集合框架的繼承體系,我們先從中的接口開始學(xué)習(xí)一概述及功能演示概述在中充當(dāng)著一個什么樣的身份呢有序的也稱為序列實現(xiàn)這個接口的用戶以對列表中每個元素的插入位置進(jìn)行精確地控制。線程不安全,效率高。 第三階段 JAVA常見對象的學(xué)習(xí) 集合框架——List接口 showImg(https://segmentfault.com/img/remote/14600...
摘要:如果需要創(chuàng)建對象,則必須與一個被迭代的集合。這是一個有狀態(tài)的方法該方法用于保證對該流的后續(xù)訪問中最大允許訪問的元素個數(shù)。可以對集合元素進(jìn)行整體的聚集操作。 Java集合分為Set(無序、不可重復(fù))、List(有序、重復(fù))、Queue(隊列)和Map(映射關(guān)系) Java集合概述 數(shù)組元素既可以是基本類型的值,也可以是對象(實際保存對象的引用變量)集合只能保存對象(實際保存對象的引用變量...
閱讀 1026·2021-11-22 13:53
閱讀 1577·2021-11-17 09:33
閱讀 2372·2021-10-14 09:43
閱讀 2835·2021-09-01 11:41
閱讀 2262·2021-09-01 10:44
閱讀 2904·2021-08-31 09:39
閱讀 1443·2019-08-30 15:44
閱讀 1853·2019-08-30 13:02