java中的Iterator和Iterable 區別

原文:http://perfy315.iteye.com/blog/1459201

----------------------------------------------------------

java.lang.Iterable?
java.util.Iterator?

來自百度知道:?
Iterator是迭代器類,而Iterable是接口。?
好多類都實現了Iterable接口,這樣對象就可以調用iterator()方法。?
一般都是結合著用,比如?
HashMap類就實現了Iterable接口,而要訪問或打印出Map中所有內容時,就可以這樣: HashMap hashMap;?
Iterator iter = hashMap.iterator();?
while(iter.hashNext()) {?
? String s = iter.next();?
}?

轉至:http://liuyun025.iteye.com/blog/1321045?
為什么一定要實現Iterable接口,為什么不直接實現Iterator接口呢??
????? 看一下JDK中的集合類,比如List一族或者Set一族,都是實現了Iterable接口,但并不直接實現Iterator接口。?
仔細想一下這么做是有道理的。?

????? 因為Iterator接口的核心方法next()或者hasNext() 是依賴于迭代器的當前迭代位置的。?
????? 如果Collection直接實現Iterator接口,勢必導致集合對象中包含當前迭代位置的數據(指針)。?
????? 當集合在不同方法間被傳遞時,由于當前迭代位置不可預置,那么next()方法的結果會變成不可預知。?
????? 除非再為Iterator接口添加一個reset()方法,用來重置當前迭代位置。?
????? 但即時這樣,Collection也只能同時存在一個當前迭代位置。?
????? 而Iterable則不然,每次調用都會返回一個從頭開始計數的迭代器。?
????? 多個迭代器是互不干擾的。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538292.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538292.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538292.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux版本fedora,技術|初級:如何更新 Fedora Linux 系統

本快速教程介紹了更新 Fedora Linux 安裝的多種方法。安裝 Fedora 之后,我做的第一件事就是嘗試安裝一些軟件。我打開軟件中心,發現該軟件中心已“損壞”。 我無法從中安裝任何應用程序。我不確定我的系統出了什么問題。在團隊內部討論時,Abh…

設計師學習HTML/CSS之路-11

不了解前端的UI不是好美工,以下是慕課網HTMLCSS基礎教程學習筆記,不廢話,Start! 第12章 CSS布局模型 11-1 元素分類 在CSS中,html中的標簽元素大體被分為三種不同的類型:塊狀元素、內聯元素(又叫行內元素)和內聯塊狀元…

yum安裝docker No package docker available

一開始以為是阿里的mirror沒有這個包。后來才知道,是需要更新下epel第三方軟件庫 centos6.5運行命令yum install docker.io,發生錯誤 No package docker available yum沒有找到docker包,更新epel第三方軟件庫,運行命令&#xff1a…

pytorch 對抗樣本_【煉丹技巧】功守道:NLP中的對抗訓練 + PyTorch實現

本文分享一個“萬物皆可盤”的NLP對抗訓練實現,只需要四行代碼即可調用。盤他。最近,微軟的FreeLB-Roberta [1] 靠著對抗訓練 (Adversarial Training)在GLUE榜上超越了Facebook原生的Roberta,追一科技也用到了這個方法僅憑單模型 [2] 就在CoQ…

linux 開源郵件 系統,4 個開源的命令行郵件客戶端

無論你承認與否,email并沒有消亡。對那些對命令行至死不渝的 Linux 高級用戶而言,離開 shell 轉而使用傳統的桌面或網頁版郵件客戶端并不適應。歸根結底,命令行最善于處理文件,特別是文本文件,能使效率倍增。幸運的是&…

kafka清理數據日志

背景問題: 使用kafka的路上踩過不少坑,其中一個就是在測試環境使用kafka一陣子以后,發現其日志目錄變的很大,占了磁盤很大空間,定位到指定目錄下發現其中一個系統自動創建的 topic,__consumer_offsets-45&a…

修改docker-倉庫資源地址Error response from daemon: Get https://index.docker.io/v1/search

[rootzengmg /]# docker search centosError response from daemon: Get https://index.docker.io/v1/search?qcentos: read tcp 52.200.132.201:443: i/o timeout docker在中國已經有了倉庫:https://www.docker-cn.com/registry-mirror 根據上面網站提供的修改方法…

oracle19c的版本號_Windows10安裝Oracle19c數據庫詳細記錄(圖文詳解)

1. 下載資源官網下載地址: 點此進入直接點擊下載,會自動開始下載。2. 開始安裝將下載的安裝包解壓到本地,右鍵-以管理員身份運行setup.exe,開始安裝(一定要以管理員身份運行,不然后面會報錯)。step1:選擇創…

qt調用Linux腳本范例,QT下實現對Linux Shell調用的幾種方法

使用QProcess QThread#include int main(){QProcess::execute("ls");return 0;}QProcess *poc new QProcess;poc-> start( "ping 222.207.53.1> hh ");打開hh文檔 讀取里面的內容給QTextEditQProcess *proc new QProcess;proc->addArgument(&qu…

Apache發布Groovy 2.5正式版及3.0預覽版

Apache基金會最近發布了Groovy2.5,新功能包括:\\AST轉換的改進\新的宏支持\其他雜項改進\運行Groovy 2.5至少需要JDK 7,在JDK 9上運行可以忽略良性警告。\\盡管最近人們把關注點轉到了其他JVM語言上(如Kotlin)&#xf…

virtualbox 命令

原文鏈接:http://418684644-qq-com.iteye.com/blog/1451000 ----------------------------------------------------------------------------------------- 查看當前虛擬機 VBxoManage list vms 查看當前正在運行的虛擬機 VBoxManage list runningvms 啟動虛擬機 …

js小學生圖區_推薦12個最好的 JavaScript 圖形繪制庫

眾多周知,圖形和圖表要比文本更具表現力和說服力。圖表是數據圖形化的表示,通過形象的圖表來展示數據,比如條形圖,折線圖,餅圖等等。可視化圖表可以幫助開發者更容易理解復雜的數據,提高生產的效率和 Web 應…

linux 關閉登錄權限,linux – /var/www/html的權限[已關閉]

我有一個虛擬CentOS服務器與GoDaddy,我無法設置/ var / www / html的權限。用戶不能以root用戶身份登錄,甚至不能將自己添加到根組中,因此,我將自己寫入的角落:>我使用以下命令更改了其所有者(我使用httpd.conf中的…

cifar10數據集測試有多少張圖_pytorch VGG11識別cifar10數據集(訓練+預測單張輸入圖片操作)...

首先這是VGG的結構圖,VGG11則是紅色框里的結構,共分五個block,如紅框中的VGG11第一個block就是一個conv3-64卷積層:一,寫VGG代碼時,首先定義一個 vgg_block(n,in,out)方法,用來構建VGG中每個blo…

npm ERR! Please try running this command again as root/Administrator.

win10操作系統下 webstrom的控制臺使用 npm install angular-file-upload 安裝組件,報錯:npm ERR! Please try running this command again as root/Administrator. 解決方法: 開始按鈕右鍵---- windows powershell(管理員&…

map flatmap mappartition flatMapToPair四種用法區別

原文鏈接:http://blog.csdn.net/u013086392/article/details/55666912 ----------------------------------------------------------------------------------- map: 我們可以看到數據的每一行在map之后產生了一個數組,那么rdd存儲的是一個數組的集合…

eve可以在linux運行嗎,ubuntu下為eve游戲搭載 wine環境

援引該地址的參考,本文僅做整理:http://bbs.eve-china.com/thread-626756-1-1.htmllinux的顯卡是否驅動成功,依次鍵入如下命令察看:sudo apt-get install mesa-utils /*安裝 mesa-utils 的指令*/glxinfo | grep r…

自動飛行控制系統_波音公司將重設計737MAX自動飛行控制系統!力求十月前復飛...

據西雅圖時報8月1日報道,美國聯邦航空管理局(FAA)在6月份對波音737 MAX飛行控制系統進行新的嚴格測試時,發現了一個潛在的缺陷,該缺陷促使波音公司對其基本的軟件設計進行變革。波音公司如今正在改變737 MAX的自動飛行控制系統軟件&#xff0…

每日一題——LeetCode141.環形鏈表

個人主頁:白日依山璟 專欄:Java|數據結構與算法|每日一題 文章目錄 1. 題目描述示例1:示例2:示例3:提示: 2. 思路3. 代碼 1. 題目描述 給你一個鏈表的頭節點 head ,判斷鏈表中是否有環。 如果鏈表中有某…

Android O 獲取APK文件權限 Demo案例

1. 通過 aapt 工具查看 APK權限 C:\Users\zh>adb pull /system/priv-app/Settings . /system/priv-app/Settings/: 3 files pulled. 10.8 MB/s (48840608 bytes in 4.325s)C:\Users\zh>aapt d permissions C:\Users\zh\Settings\Settings.apk package: com.android.sett…