foreach:為數組或對象中的每個元素重復一個嵌入語句組(簡單點說就是遍歷數組或對象,然后將遍歷的數組或對象中的值添加到新的數組或對象中);
舉例代碼:
package com.spsoft.vatmgr.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.internal.matchers.Each;
import com.ibm.db2.jcc.a.a;
public class Test {
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("d", "4");
map.put("e", "5");
list.add(map);
for (Map<String, String> aMap : list) {
System.out.println(aMap);
}
}
}
輸出結果為:{d=4, e=5, b=2, c=3, a=1}
for循環遍歷集合時使用下標來定位集合中的元素
代碼舉例:
package com.spsoft.vatmgr.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.internal.matchers.Each;
import com.ibm.db2.jcc.a.a;
public class Test {
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("d", "4");
map.put("e", "5");
list.add(map);
for (int i = 0; i < list.size(); i++) {
Map<String, String> forMap=list.get(i);
System.out.println(forMap);
}
}
}
輸出結果:{d=4, e=5, b=2, c=3, a=1}
二者的區別:
1.foreach遍歷集合時,集合實現Iterator接口,foreach是使用Iterator接口來實現對集合的遍歷的
2.在用foreach循環遍歷一個集合時不能向集合中增加元素,不能從集合中刪除元素
3.當使用foreach循環基本類型時變量時不能修改集合中的元素的值,遍歷對象時可以修改對象的屬性的值,但是不能修改對象的引用