今天接触了一个以前看到过但完全朦胧的东西->那就是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异常
引用:https://www.cnblogs.com/XiaojianGo/p/7471860.html
来源:oschina
链接:https://my.oschina.net/u/4412009/blog/3475550