A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梦想的小草 中级黑马   /  2016-9-3 22:40  /  513 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

增强for循环迭代:
原则上map集合是无法使用增强for循环来迭代的,因为增强for循环只能针对实现了Iterable接口的集合进行迭代;Iterable是jdk5中新定义的接口,就一个方法iterator方法,只有实现了Iterable接口的类,才能保证一定有iterator方法,java有这样的限定是因为增强for循环内部还是用迭代器实现的,而实际上,我们可以通过某种方式来使用增强for循环。
for(Objectobj : map.entrySet()) {
  Map.Entry entry = (Entry) obj;  // obj 依次表示Entry
  System.out.println(entry.getKey()+ "=" + entry.getValue());
}
集合迭代注意问题:在迭代集合的过程中,不能对集合进行增删操作(会报并发访问异常);可以用迭代器的方法进行操作(子类listIterator:有增删的方法)。
增强for循环注意问题:在使用增强for循环时,不能对元素进行赋值;
int[] arr= {1,2,3};
for(intnum : arr) {
  num = 0; //不能改变数组的值,否则抛出并发修改异常
}
System.out.println(arr[1]);

2 个回复

正序浏览
用迭代器本身的方法就可以做修改了
回复 使用道具 举报
这个在社招面试的时候会问的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马