增強for循環

增強for循環是JDK 5.0出現的新特性,其本質與iterator遍歷的效果是一樣,也就是說增強for循環的內容就是在調用iterator來實現的。

優點有:

① 使用增強for在遍歷過程中,不需要檢查數組的邊界,更不用擔心數組越界;

② 結構簡潔明瞭,實現iterator接口的都可以使用增強for,等;

結構:

for(變量類型 變量名:需迭代的數組或集合)

{

語句;

}

缺點

① 不能在增強for循環中動態的刪除改變集合內容;

② 不能獲取集合的下標值,等;

注意事項

① ArrayList由於使用數組實現,因此下標明確,最好使用傳統的for循環;

② LinkedList獲取一個元素,要從頭開始向後找,因此尖刺使用增強for循環,也就是使用iterator;

③ Map集合也可通過兩種方式進行增強for循環遍歷:

a)使用keyset()方法,通過iterator得到Map集合中的每一個key,在通過map.get(key)獲取key對應的值;

b)通過entryset方法獲取set集合。

普通數組遍歷測試:

<span style="white-space:pre">	</span>@Test
	public void test1()
	{
		int arr[]={1,2,3};
		for(int i : arr)
		{
			System.out.println(i);
		}
		String arr1[]={"aaa","bbb","ccc","ddd"};
		for(String i:arr1)
		{
			System.out.println(i);
		}
	}
list集合迭代遍歷測試:

	@Test
	public void test2()
	{
		List list=new ArrayList();
		list.add("aaa");
		list.add("bbb");
		list.add("ccc");
		for(Object obj:list)
		{
			String str=(String) obj;
			System.out.println(str);
		}
		
	}
Map集合的傳統方式迭代遍歷測試:

<span style="white-space:pre">	</span>@Test
	public void test3()
	{
		Map map=new HashMap();
		map.put(1, "a");
		map.put(2, "b");
		map.put(3, "c");
		Set set=map.keySet();
		Iterator it=set.iterator();
		while(it.hasNext())
		{
			int key= (Integer) it.next();
			String value=(String) map.get(key);
			System.out.println(key+"....."+value);
		}
	}
	
	
	@Test
	public void test4()
	{
		Map map=new HashMap();
		map.put(1, "aa");
		map.put(2, "bb");
		map.put(3, "cc");
		Set set=map.entrySet();
		Iterator it=set.iterator();
		while(it.hasNext())
		{
			Map.Entry entry=(Entry) it.next();
			int key=(Integer) entry.getKey();
			String value=(String) entry.getValue();
			System.out.println(key+"......."+value);
		}
	}
Map集合使用增強for循環的遍歷迭代測試:

<span style="white-space:pre">	</span>@Test
	public void test5()
	{
		Map map=new HashMap();
		map.put(1, "a");
		map.put(2, "b");
		map.put(3, "c");
		for(Object obj:map.keySet())
		{
			int key=(Integer) obj;
			String value=(String) map.get(key);
			System.out.println(key+"....."+value);
		}
	}
	@Test
	public void test6()
	{
		Map map=new HashMap();
		map.put(1, "aa");
		map.put(2, "bb");
		map.put(3, "cc");
		for(Object obj:map.entrySet())
		{
			Map.Entry entry=(Entry) obj;
			int key=(Integer) entry.getKey();
			String value=(String) entry.getValue();
			System.out.println(key+"...."+value);
		}
	}




發佈了39 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章