JAVA集合的遍歷for循環、Iterator迭代器


java中提供了很多個集合,它們在存儲元素時,采用的存儲方式不同。我們要取出這些集合中的元素,可通過一種通用的獲取方式來完成。

Collection集合元素的通用獲取方式:在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續在判斷,如果還有就再取出出來。一直把集合中的所有元素全部取出。這種取出方式專業術語稱為迭代。

 Iterator迭代器有

            hasNext()方法:

用來判斷集合中是否有下一個元素可以迭代。如果返回true,說明可以迭代。

 

            Next()方法:

用來返回迭代的下一個元素,並把指針向后移動一位。

         圖解:

                                           

 

Collection接口描述了一個抽象方法iterator方法,所有Collection子類都實現了這個方法,並且有自己的迭代形式。

 

//1,創建集合對象。
Collection<String> coll = new ArrayList<String>();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
 
//2.獲取容器的迭代器對象。通過iterator方法。
Iterator it = coll.iterator();
 
//3,使用具體的迭代器對象獲取集合中的元素。參閱迭代器的方法
while(it.hasNext()){
    System.out.println(it.next());
}
 
/*
迭代器for循環的形式的使用
for (Iterator it = coll.iterator(); it.hasNext(); ) {
    System.out.println(it.next());
}
*/

 

注意:在進行集合元素取出時,如果集合中已經沒有元素了,還繼續使用迭代器的next方法,將會發生java.util.NoSuchElementException沒有集合元素的錯誤。

 

     集合中存儲其實都是對象的地址。 

 

  集合中可以存儲基本數值嗎?jdk1.5版本以后可以存儲了。因為出現了基本類型包裝類,它提供了自動裝箱操作(基本類型à對象),這樣,集合中的元素就是基本數值的包裝類對象。 

 

  存儲時提升了Object。取出時要使用元素的特有內容,必須向下轉型。

 

Collection<String> coll = new ArrayList<String>();

coll.add("abc");

coll.add("aabbcc");

coll.add("cat");

Iterator<String> it = coll.iterator();

while (it.hasNext()) {

    String str = it.next();

//當使用Iterator<String>控制元素類型后,就不需要強轉了。獲取到的元素直接就是String類型

    System.out.println(str.length());

}

 

 

     增強for循環遍歷集合。

格式:

for(元素的數據類型 變量 : Collection集合or數組){

}

練習一:遍歷數組int[] arr = new int[]{11,22,33};

for (int n : arr) {//變量n代表被遍歷到的數組元素
    System.out.println(n);
}
練習二:遍歷集合
Collection<String> coll = new ArrayList<String>();
coll.add("a1");
coll.add("a2");
coll.add("a3");
coll.add("a4");
for(String str : coll){//變量Str代表被遍歷到的集合元素
    System.out.println(str);
}

增強for循環和老式的for循環有什么區別?

注意:新for循環必須有被遍歷的目標。目標只能是Collection或者是數組。

建議:遍歷數組時,如果僅為遍歷,可以使用增強for如果要對數組的元素進行 操作,使用老式for循環可以通過角標操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM