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循环基本类型时变量时不能修改集合中的元素的值,遍历对象时可以修改对象的属性的值,但是不能修改对象的引用