Java集合框架頂層接口collectiion接口


如何使用迭代器

通常情況下,你會希望遍歷一個集合中的元素。例如,顯示集合中的每個元素。

一般遍歷數組都是采用for循環或者增強for,這兩個方法也可以用在集合框架,但是還有一種方法是采用迭代器遍歷集合框架,它是一個對象,實現了Iterator 接口或ListIterator接口。

迭代器,使你能夠通過循環來得到或刪除集合的元素。ListIterator 繼承了Iterator,以允許雙向遍歷列表和修改元素。

序號 迭代器方法描述
1 使用 Java Iterator
這里通過實例列出Iterator和listIterator接口提供的所有方法。

遍歷 ArrayList

實例

import java.util.*; 
public class Test{
 public static void main(String[] args) {
 List<String> list=new ArrayList<String>();
 list.add("Hello"); 
list.add("World"); 
list.add("HAHAHAHA"); 
//第一種遍歷方法使用foreach遍歷List 
for (String str : list) {
 //也可以改寫for(int i=0;i<list.size();i++)這種形式 System.out.println(str); 
} 
//第二種遍歷,把鏈表變為數組相關的內容進行遍歷 String[] strArray=new String[list.size()]; list.toArray(strArray); 
for(int i=0;i<strArray.length;i++) //這里也可以改寫為 foreach(String str:strArray)這種形式 { System.out.println(strArray[i]); }
 //第三種遍歷 使用迭代器進行相關遍歷 Iterator<String> ite=list.iterator();
 while(ite.hasNext())//判斷下一個元素之后有值 {
 System.out.println(ite.next()); } } }

  

解析:

三種方法都是用來遍歷ArrayList集合,第三種方法是采用迭代器的方法,該方法可以不用擔心在遍歷的過程中會超出集合的長度。

遍歷 Map

實例

import java.util.*; public class Test{
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1"); map.put("2", "value2");
map.put("3", "value3");
//第一種:普遍使用,二次取值 System.out.println("通過Map.keySet遍歷key和value:");
for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); }
//第二種 System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) { Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); }
//第三種:推薦,尤其是容量大時 System.out.println("通過Map.entrySet遍歷key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} //第四種 System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
for (String v : map.values()) { System.out.println("value= " + v); } } }


免責聲明!

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



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