黑马程序员技术交流社区
标题:
高级For的个人总结和理解
[打印本页]
作者:
sd6628611
时间:
2015-11-15 21:41
标题:
高级For的个人总结和理解
高级for循环
格式:for(数据类型 变量名 : 被遍历的集合(Collection)或者数组) { }
对集合进行遍历。只能获取集合元素。但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。
传统for和高级for有什么区别呢?
高级for有一个局限性。必须有被遍历的目标。
建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。
class ForEachDemo
{ public static void main(String[] args)
{ ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
for(String s : al)
{
//s = "kk";
System.out.println(s);
}
System.out.println(al);
/*
Iterator<String> it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next()); } */
int[] arr = {3,5,1};
for(int x=0; x<arr.length; x++)
{ System.out.println(arr[x]); }
for(int i : arr)
{ System.out.println("i:"+i); }
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)
for(Map.Entry<Integer,String> me : hm.entrySet())
{ System.out.println(me.getKey()+"------"+me.getValue()); }
}
}
作者:
gih146
时间:
2015-11-15 22:28
谢谢分享
作者:
young_ants
时间:
2015-11-15 23:24
高级for在遍历集合时,不适合删除和增加元素
作者:
lingyuezhixing
时间:
2015-11-16 00:17
传统的for不适合对象比较复杂,存放元素过多的集合操作。就算你是数组,存放简单元素,存取速度也比不过HaseSet ,它在读取或插入元素几乎不用不到遍历,直接比较内存地址值,在老师讲课故意使地址值相同除外。
作者:
xiaolang110
时间:
2015-11-16 01:08
厉害啊!很全面,表示佩服,必须收藏
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2