在之前進行集合輸出的時候都利用了tostring(),或者利用了list介面中的get()方法。這些都不是集合的標準輸出。
如果從標準上來講,集合輸出一共有四種手段:iterator、listiterator、enumeration、foreach,接下來就詳細講述一下這幾種方法
在jdk1.5之前,在collection介面中就定義有iterator()方法,通過此方法可以取得iterator介面的例項化物件;而在
jdk1.5之後,將此方法提公升為iterable介面中的方法。無論你如何提公升,只要collection有這個方法,那麼list、set
也一定有此方法。
對於iterator介面最初的設計裡面實際有三個抽象方法:
判斷是否有下乙個元素: public boolean hasnext();
取得當前元素: public e next();
刪除元素: public default void remove(); 此方法從jdk1.8開始變為default完整方法
public class testiterator
system.out.println(str);}}
}結果:ni ta
iterator輸出有乙個特點:只能夠由前向後進行內容的迭代處理,而如果要想進行雙向迭代,那麼就必須依靠
iterator的子介面:listiterator來實現。首先來觀察一下此介面定義的方法:
取得上乙個元素:public e previous();
iterator介面物件是由collection介面支援的,但是listiterator是由list介面支援的,list介面提供有如下方法:
取得listiterator介面物件:public listiterator listiterator()
public class testlistiterator
system.out.println("\n從後向前輸出: ") ;
while(iterator.hasprevious())
}}
如果要想實現由後向前的輸出,那麼應該首先進行從前向後的輸出,否則無法實現雙向。
定義:判斷是否有下乙個元素:public boolean hasmoreelements();
取得元素:public e nextelement();
要想取得這個介面的例項化物件,是不能依靠collection、list、set等介面的。只能夠依靠vector子類,因為enumeration最早的設計就是為vector服務的,在vector類中提供有乙個取得enumeration介面物件的方法:public enumeration elements();
public class testenumeration
}}
public class testforeach
}}
總結
一些操作類庫上依然只支援enumeration,而不支援iterator。看見集合輸出就用iterator
Java集合框架 三
01.集合 map概述 我感覺就是c 中的字典dictionary。map集合的基本特點 該集合儲存鍵值對,是一對一對往裡存,而且要保證鍵的唯一性。新增 put key,value putall 刪除 clear remove object obj 按鍵值刪除 判斷 containskey obje...
java集合框架(map集合)
map集合 該集合儲存鍵值對,一對一對往裡存,而且要保證鍵值得唯一性。一 基本方法 1.新增 put k key,v value 將指定的值與此對映中的指定鍵關聯 可選操作 putall map m 從指定對映中將所有對映關係複製到此對映中 可選操作 2.刪除 從此對映中移除所有對映關係 可選操作 ...
Java 集合框架 List 集合
arraylist,linkedlist,vector,stack是list的4個實現類。arraylist 是乙個陣列佇列,相當於動態陣列。它由陣列實現,隨機訪問效率高,隨機插入 隨機刪除效率低。linkedlist 是乙個雙向鍊錶。它也可以被當作堆疊 佇列或雙端佇列進行操作。linkedlist...