Java Collection集合iterator方法解析
這篇文章主要介紹了Java Collection集合iterator方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
Iterator接口概述
/** * java.util.Iterator接口:選代器(對(duì)集合進(jìn)行遍歷) * 有兩個(gè)常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,則返回true。 * 即判斷集合中還有沒(méi)有下ー個(gè)元素,有就返回true,沒(méi)有就返回 false * E next() * 返回送代的下一個(gè)元素。 * 即取出集合中的下一個(gè)元素 * iterator迭代器,是一個(gè)接口,我們無(wú)法直接使用,需要使用Iterator接口的實(shí)現(xiàn)類(lèi)對(duì)象。 * 獲取實(shí)現(xiàn)類(lèi)的方式比較特殊Collection接口中有一個(gè)方法,叫iterator(),這個(gè)方法返回的就是送代器的實(shí)現(xiàn)類(lèi)對(duì)象 * Iterator<E> iterator()返回在該collection集合的元素上進(jìn)行迭代的送代器。 * * 迭代器的使用步驟(重點(diǎn)): * 1.使用集合中的方法 iterator()獲取送代器的實(shí)現(xiàn)類(lèi)對(duì)象,使用Iterator接口接收(多態(tài)) * 2.使用Iterator接口中的方法hasNext來(lái)判斷還有沒(méi)有下一個(gè)元素 * 3.使用Iterator接口中的方法next來(lái)取出集合中的下一個(gè)元素 */
迭代器代碼的實(shí)現(xiàn)
import java.util.ArrayList; import java.util.Iterator; import java.util.Collection; public class Demo01Iterator { public static void main(String[] args) { Collection <String> collection = new ArrayList<>(); collection.add("1號(hào)"); collection.add("2號(hào)"); collection.add("3號(hào)"); collection.add("4號(hào)"); collection.add("5號(hào)"); // 第一步:使用集合中的方法 iterator() 獲取送代器的實(shí)現(xiàn)類(lèi)對(duì)象 // 第二步:使用Iterator接口接收(多態(tài)) Iterator<String> stringIterator = collection.iterator(); // 第三步:使用Iterator接口中的方法hasNext來(lái)判斷還有沒(méi)有下一個(gè)元素 while (stringIterator.hasNext()) { // 第四步:使用Iterator接口中的方法next來(lái)取出集合中的下一個(gè)元素 System.out.println( stringIterator.next() ); } } }
輸出結(jié)果: 1號(hào) 2號(hào) 3號(hào) 4號(hào) 5號(hào)
迭代器的實(shí)現(xiàn)原理
new一個(gè)集合出來(lái) collection = new ArrayList<>() 假設(shè)集合中添加有元素 collection = [一號(hào)元素, 二號(hào)元素, 三號(hào)元素, 四號(hào)元素, 五號(hào)元素] 集合中的元素對(duì)應(yīng)的索引 Index = [0, 1, 2, 3, 4] 調(diào)用iterator方法 collection.iterator() 作用:獲取迭代器的實(shí)現(xiàn)類(lèi)對(duì)象井且會(huì)把指針(索引)指向集合的-1素引 代碼說(shuō)明: while (stringIterator.hasNext()) { stringIterator.next() } 通過(guò)Iterator接口的hasNext()方法,判斷集合是否還有沒(méi)有下一個(gè)元素 如果有下一個(gè)元素,那么就調(diào)用Iterator接口的next()方法,取出下一個(gè)元素,并且會(huì)把指針向后移一位。 就這樣,從索引的 -1 位置的下一位索引,開(kāi)始獲取元素,直到獲取完全。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java線(xiàn)性表的順序表示及實(shí)現(xiàn)
這篇文章主要介紹了Java線(xiàn)性表的順序表示及實(shí)現(xiàn),順序表是在計(jì)算機(jī)內(nèi)存中以數(shù)組的形式保存的線(xiàn)性表,線(xiàn)性表的順序存儲(chǔ)是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線(xiàn)性表中的各個(gè)元素、使得線(xiàn)性表中在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲(chǔ)在相鄰的物理存儲(chǔ)單元中2022-07-07java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)詳解
Java.lang.String是Java的字符串類(lèi). Srting是一個(gè)不可變對(duì)象,下面這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2021-08-08JAVA發(fā)送HTTP請(qǐng)求,返回HTTP響應(yīng)內(nèi)容,應(yīng)用及實(shí)例代碼
這篇文章主要介紹了JAVA發(fā)送HTTP請(qǐng)求,返回HTTP響應(yīng)內(nèi)容,應(yīng)用及實(shí)例代碼,需要的朋友可以參考下2014-02-02java打包成可執(zhí)行的jar或者exe的詳細(xì)步驟
Java程序完成以后,對(duì)于Windows操作系統(tǒng),習(xí)慣總是想雙擊某個(gè)exe文件就可以直接運(yùn)行程序,現(xiàn)我將一步一步的實(shí)現(xiàn)該過(guò)程.最終結(jié)果是:不用安裝JRE環(huán)境,不用安裝數(shù)據(jù)庫(kù),直接雙擊一個(gè)exe文件,就可以運(yùn)行程序2014-04-04以銀行取錢(qián)為例模擬Java多線(xiàn)程同步問(wèn)題完整代碼
這篇文章主要介紹了以銀行取錢(qián)為例模擬Java多線(xiàn)程同步問(wèn)題完整代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Spring的@Value如何從Nacos配置中心獲取值并自動(dòng)刷新
這篇文章主要介紹了Spring的@Value如何從Nacos配置中心獲取值并自動(dòng)刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07分布式調(diào)度XXL-Job整合Springboot2.X實(shí)戰(zhàn)操作過(guò)程(推薦)
這篇文章主要介紹了分布式調(diào)度XXL-Job整合Springboot2.X實(shí)戰(zhàn)操作,包括定時(shí)任務(wù)的使用場(chǎng)景和常見(jiàn)的定時(shí)任務(wù),通過(guò)本文學(xué)習(xí)幫助大家該選擇哪個(gè)分布式任務(wù)調(diào)度平臺(tái),對(duì)此文感興趣的朋友一起看看吧2022-04-04