黑马程序员--高级for循环

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
高级for循环。
格式
for(数据类型 变量名 ;被遍历的集合(Collection)或者数组)
{

}
对集合进行遍历。
只能获取集合元素。但是不能对集合进行操作。

迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。
import java.util.*;
class ForEachDemo 
{
	public static void main(String[] args) 
	{
		ArrayList<String> al = new ArrayList<String>();
		al.add("aaa");
		al.add("bbb");
		al.add("ccc");
		for(String s : al)//s会挨个指向al集合中的元素
		{
			//s = "qq";当s指向被改变时,并不会改变集合中的元素。这是局限性,但迭代器可以改变元素,至少还有remove。
			System.out.println(s);
		}
		System.out.println(al);
		//高级for和传统for对数组进行遍历
		int[] arr = {2,4,5};
		for (int x = 0;x<arr.length ;x++ )
		{
			System.out.println(arr[x]);
		}
		for(int x: arr)
		{
			System.out.println("x="+x);
		}
		//HashMap集合举例
		HashMap<Integer,String> hm = new HashMap<Integer,String>();

		hm.put(1,"a");
		hm.put(2,"b");
		hm.put(3,"c");
		Set<Integer> keyset = hm.keySet();
		for(Integer i: keyset)
		{
			System.out.println(i+"\\\\"+hm.get(i));
		}
		Set<Map.Entry<Integer,String>> entryset = hm.entrySet();
		for(Map.Entry<Integer,String> me: entryset)
		{
			System.out.println(me.getKey()+"------"+me.getValue());
		}
	}
	
}


传统for和高级for有什么区别呢?(有角标和没角标)
高级for有一个局限性。必须有被遍历的目标。
建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。有角标可以对角标进行操作。比如判断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值