黑马程序员技术交流社区

标题: 高级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