導航:首頁 > 編程語言 > java集合迭代

java集合迭代

發布時間:2022-06-09 05:32:54

java 中集合已經有增刪改查了為什麼還要迭代器

您好,提問者:
迭代器的神奇之處在於:可以迭代很多,比如Set、List介面下的類。
雖然List有.get方法,但是遠遠不能滿足需求,對於面向抽象來講,這些集合框架的類既然都可以存儲,那麼肯定都可以迭代,所以抽取出來Iterator。
另外List迭代過程中有增刪修改的話可以使用ListIterator介面,也是Iterator介面的子介面。。。。

Ⅱ java中什麼叫迭代,什麼叫迭代器

迭代:

是重復反饋過程的活動,其目的通常是為了逼近所需目標或結果。每一次對過程的重復稱為一次「迭代」,而每一次迭代得到的結果會作為下一次迭代的初始值。

重復執行一系列運算步驟,從前面的量依次求出後面的量的過程。此過程的每一次結果,都是由對前一次所得結果施行相同的運算步驟得到的。例如利用迭代法*求某一數學問題的解。

對計算機特定程序中需要反復執行的子程序*(一組指令),進行一次重復,即重復執行程序中的循環,直到滿足某條件為止,亦稱為迭代。

迭代器(Iterator)模式:

又叫做游標模式,它的含義是,提供一種方法訪問一個容器對象中各個元素,而又不需暴露該對象的內部細節。

注意:Java的集合框架的集合類,有的時候也稱為容器。

從定義上看,迭代器是為容器而生,它本質上就是一種遍歷的演算法。因為容器的實現千差萬別,很多時候不可能知道如何去遍歷一個集合對象的元素。Java為我們提供了使用迭代的介面,Java的所有集合類丟失進行迭代的。

簡單的說,迭代器就是一個介面Iterator,實現了該介面的類就叫做可迭代類,這些類多數時候指的就是java.util包下的集合類。

總結:

迭代器,提供一種訪問一個集合對象各個元素的途徑,同時又不需要暴露該對象的內部細節。java通過提供Iterator和Iterable倆個介面來實現集合類的可迭代性,迭代器主要的用法是:首先用hasNext()作為循環條件,再用next()方法得到每一個元素,最後在進行相關的操作。

(2)java集合迭代擴展閱讀

首先,創建了一個List的集合對象,並放入了倆個字元串對象,然後通過iterator()方法得到迭代器。iterator()方法是由Iterable介面規定的,ArrayList對該方法提供了具體的實現,在迭代器Iteartor介面中,有以下3個方法:

1、hasNext()該方法英語判斷集合對象是否還有下一個元素,如果已經是最後一個元素則返回false

2、next()把迭代器的指向移到下一個位置,同時,該方法返回下一個元素的引用

3、remove() 從迭代器指向的Collection中移除迭代器返回的最後一個元素,該操作使用的比較少。

注意:從Java5.0開始,迭代器可以被foreach循環所替代,但是foreach循環的本質也是使用Iterator進行遍歷的。

Ⅲ Java中如果集合迭代器已經迭代完了,如果還想迭代,只能在調用一遍iterator返回一個新的嗎

代碼如下

importjava.util.ArrayList;
importjava.util.Iterator;

publicclassListDemo{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
list.add(5);
list.add(3);
list.add(2);
Iterator<Integer>it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println(it.hasNext());//false表示沒有元素了
//System.out.println(it.next());//會拋出異常NoSuchElementException

it=list.iterator();//從集合里重新獲得迭代器
}
}

拓展思考:

對於此類問題,往往是對java類不太熟悉, 可以經常使用java api文檔, 查看文檔,你會快速了解到某個類的方法有哪些, 繼承了哪些介面等情況,

比如Iterator類的方法說明如下

方法摘要

boolean hasNext()
如果仍有元素可以迭代,則返回 true。

E next()
返回迭代的下一個元素。

void remove()
從迭代器指向的 collection 中移除迭代器返回的最後一個元素(可選操作)。

Ⅳ Java 實現迭代功能的程序

1、迭代主要是對一些集合類如List、map等進行迭代
2、獲取集合類對象,如List
dataList
3、獲取dataList的迭代器
4、利用while循環迭代
示例:
List
dataList
=
new
ArrayList
dataList.add("北京");
dataList.add("天津");
//獲取dataList的迭代器
Iterator
it
=
dataList.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

Ⅳ 關於JAVA的迭代集合,是什麼意思

一般的for語句是這么寫的,
for(int i =0; i <10; i++) 定義一個初始值,然後定義一個邊界,最後得有一個對初始值的操作。
在這個for語句也是一樣的,
for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
type name = (type) iterator.next();
}
Iterator iterator = collection.iterator(); 這個是對迭代器的初始化。
iterator.hasNext(); 這個算是邊界(只要返回是true,它會一直執行下去),確認是否有下一個元素。
type name = (type) iterator.next(); 對初始值的操作,為了避免死循環。意思是把迭代器裡面的每一個元素一個一個取出來,每調用一次這個方法,它會指向下一個元素。

總結一下的話,只要實現了iterator();這個方法的集合,都叫迭代集合。

Ⅵ java的List集合迭代器

是刪除了的,親。是你弄錯 了,你對比一下我給你寫的代碼,你就知道你的問題出在哪了,我只加了一句話。

importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
publicclassArrayListTest
{
publicstaticvoidmain(String[]args)
{
List<Object>list=newArrayList<Object>();
list.add((byte)56);
list.add((short)5656);
list.add(565656);
list.add(56565656L);
Iteratorit=list.iterator();
while(it.hasNext())
{
Objectobj=it.next();
if(objinstanceofInteger)
{
it.remove();
//刪除成功以後就不應該再輸出這個刪除的值,明白嗎?
continue;
}
System.out.println(obj);
}
}
}

有什麼問題你都可以追問我,沒問題,望採納,謝謝

Ⅶ Java集合迭代為什麼會發生異常

在用迭代器iterator迭代元素的時候,是不能夠直接添加刪除元素的,就是說不能進行修改,否則可能會產生異常。移除元素可以使用it.remove()這個方法是標記移除,等遍歷完才真正刪除。你上述程序沒有發生異常是因為學習C#語言是set的最後一個元素,但是在裡面添加,循環中沒有列印出來吧。

Ⅷ 在java中「迭代」是什麼意思

重復的反饋某一過程(操作)叫迭代,

在java中,就是循環重復的進行某一操作,比如一個程序要累加1到100的和,
那麼只要定義一個變數sum,讓它重復的進行累加操作:
int sum =0;
for( int i=1; i<=100; i++ ){

sum = sum +i;

}
其中執行一次sum = sum + i ;就稱之為一次迭代,每一次迭代得到的結果(sum + i 的和)會作為下一次迭代的初始值(結果賦值給sum變數後,這個變數又作下一次迭代的初始值);這就是迭代與普通循環的區別。

Ⅸ java中」遍歷「,」迭代「是什麼意思

遍歷和迭代在每種語言中的意思都是一樣的.
迭代(iterate),指的是按照某種順序逐個訪問列表中的每一項。比如,for語句。
遍歷(traversal),指的是按照一定的規則訪問樹形結構中的每個節點,而且每個節點都只訪問一次。

閱讀全文

與java集合迭代相關的資料

熱點內容
暴力刪除命令 瀏覽:801
qt如何編譯加快速度 瀏覽:903
php添加數據sql語句 瀏覽:717
免費的小說app有什麼 瀏覽:405
螺桿壓縮機進氣閥動畫 瀏覽:651
兩台伺服器如何做負載均衡 瀏覽:227
程序員的工資是漲的嗎 瀏覽:813
視頻存儲伺服器可以干什麼 瀏覽:463
創建文件夾安裝失敗怎麼回事 瀏覽:832
程序員高考隔了幾年 瀏覽:822
雲伺服器是哪一層 瀏覽:22
jit編譯器的jit什麼意思 瀏覽:330
我想清理手機中空白文件夾 瀏覽:976
電腦e盤文件夾刪不掉怎麼辦 瀏覽:607
外圓凹圓弧編程 瀏覽:461
html5編程題 瀏覽:839
乾燥機製冷壓縮機一開就跳動 瀏覽:388
吉林壓縮空氣流量監測 瀏覽:618
根據地址獲取經緯度php 瀏覽:13
小天才app的應用中心有什麼應用 瀏覽:770