首页 > 代码库 > 增强for循环

增强for循环

格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组){

}


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

迭代器除了遍历,还可以进行remove集合中元素的动作。如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。


传统for和高级for有什么区别呢?

高级for有一个局限性。必须有被遍历的目标。建议在遍历数组的时候,还是用传统for,因为传统for可以定义脚标。


代码示例:

package tan;
//增强for循环
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class ForEachDemo {
	public static void main(String[] args) {
		ArrayList<String> al = new ArrayList<String>();

		al.add("abc1");
		al.add("abc2");
		al.add("abc3");
		//简化了书写,但底层实现仍是迭代器,
		//局限性:只能对集合中的元素取出而不能做修改动作,而迭代器可以删除(Remove)
		//如果是列表迭代器,则增删改查都是可以的
		for(String s:al){
			System.out.println(s);
		}
		/*
		Iterator<String> it = al.iterator();

		while(it.hasNext())
		{
			System.out.println(it.next());
		}
		*/
		

/*传统for和高级for有什么区别呢?

高级for有一个局限性。必须有被遍历的目标。

建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。*/
		int[] arr = {3,5,1};
		
		System.out.println("一般for循环");
		for(int x=0; x<arr.length; x++)
		{
			System.out.println(arr[x]);
		}
		
		System.out.println("增强for循环");
		for(int i : arr)
		{
			System.out.println("i:"+i);
		}
		
		
	System.out.println("keySet()方式取出集合中的元素");
	HashMap<Integer, String> hm=new HashMap<Integer,String>();	
		hm.put(1, "A");
		hm.put(2, "B");
		hm.put(3, "C");
	
	//keySet()返回Map中所包含键的Set视图。删除Set中的元素还将删除Map中相应原映射。
	Set<Integer>keySet=hm.keySet();
	for(Integer i:keySet){
		System.out.println(i+":"+hm.get(i));
	}
	
	
	//EnterySet()返回Map中所包含映射的Set视图。Set中的每个元素都是一个Map.Entry对象,
	//可以使用getKey()和getValue()方法访问后者的键元素和值元素。
	System.out.println("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());
	}
		
		
	}
}