今天接触了一个以前看到过但完全朦胧的东西->那就是foreach循环,网上查阅后得到语法如下
for(元素类型 元素名称 : 遍历数组(集合)(或者能进行迭代的)){
语句
}
由于for括号内没有逻辑表达式,所以它适用于循环次数不知道的情况下会使得代码更加简便(暂时这么理解,具体与for循环之间的效率的区别未知)
这个增强的for循环,对map类的键值对,也可以使用,例子如下:
1 public class Test{ 2 public static void main(String[] args) { 3 Map<String,Integer> testmap = new LinkedHashMap<String, Integer>(); 4 //这里的Integer不能替换为int(似乎这里的类型定义不能使用基本类型,只能使用基本类型的包装类) 5 testmap.put("s1",1); 6 testmap.put("s2",2); 7 testmap.put("s3",3); 8 //Map.Entry<String,Integer>可以算是一个类型,表明这个键值对集合里键值对的类型 9 for(Map.Entry<String,Integer> s : testmap.entrySet()){ 10 System.out.println("'" + s.getKey() + "':" + s.getValue()); 11 } 12 } 13 }
在使用foreach时,不能对数组(集合)做添加删除,因为使用foreach时数组(集合)已被锁定不能修改,否则会报出java.util.ConcurrentModificationException异常