第三次學JAVA再學不好就喫翔(part77)--迭代器遍歷

學習筆記,僅供參考,有錯必糾



集合


迭代器遍歷

  • 迭代器概述

集合是用來存儲元素的,存儲的元素需要查看,那麼就需要迭代(遍歷) 。


Iterator類


Iterator類是在java.util包下的一個類,用的時候需要導包,它是一個接口,不能被實例化。

  • hasNext方法
boolean hasNext()

如果仍有元素可以迭代,則返回 true。(換句話說,如果 next 返回了元素而不是拋出異常,則返回 true)。


  • next方法
E next()

返回迭代的下一個元素。


Collection類的iterator方法


Iterator<E> iterator()

返回在此 collection 的元素上進行迭代的迭代器。關於元素返回的順序沒有任何保證(除非此 collection 是某個能提供保證順序的類實例)。


迭代器原理


迭代器是對集合進行遍歷,而每一個集合內部的存儲結構都是不同的,所以每一個集合存和取都是不一樣,那麼就需要在每一個類中定義hasNext()next()方法,這樣做是完全OK的,但是會讓整個集合體系過於臃腫,迭代器是將這樣的方法向上抽取出接口,然後在每個類的內部定義自己迭代方式,這樣做的好處有二:第一,規定了整個集合體系的遍歷方式都是hasNext()和next()方法;第二,代碼有底層內部實現,使用者不用管怎麼實現的,會用即可。


舉個例子


package com.guiyang.restudy3;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import com.guiyang.bean.Student;

@SuppressWarnings({ "rawtypes", "unchecked" })

public class D3Iterator {

	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add(new Student("張三", 23)); //Object obj = new Student("張三",23);
		c.add(new Student("李四", 24));
		c.add(new Student("王五", 25));
		c.add(new Student("趙六", 26));
		
		//獲取迭代器
		Iterator it = c.iterator();
		//java.util.Iterator
		while(it.hasNext()) {
			//System.out.println(it.next());
			Student s = (Student)it.next();	//向下轉型
			System.out.println(s.getName() + "..." + s.getAge());
		}
	}

}

輸出:

張三...23
李四...24
王五...25
趙六...26
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章