增强for循环
- 对集合进行遍历。只能获取集合元素。但是不能对集合进行操作。
- 迭代器除了遍历,还可以进行remove集合中元素的动作。
- 如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。
- 局限性:必须有被遍历的目标。
- 在遍历数组的时候,一般用传统for。因为传统for可以定义脚标。
/*格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组){
}
*/
import java.util.*;
class ForEachDemo {
public static void main(String[] args) {
//遍历ArrayList集合中的元素
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
//高级for循环
for (String s : al) {
System.out.println(s);
}
/*迭代器
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("x:" + 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");
/*
keySet方法获取集合中的元素
Set<Integer> keySet = hm.keySet();
for (Integer i : keySet) {
System.out.println(i + "::" + hm.get(i));
}
*/
//entrySet方法获取集合中的元素
//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());
}
}
}
运行结果:
abc1
abc2
abc3
i:3
i:5
i:1
1:a
2:b
3:c