黑马程序员技术交流社区

标题: Map集合的取出方式 [打印本页]

作者: DoubleUUU    时间: 2015-11-11 23:34
标题: Map集合的取出方式
本帖最后由 DoubleUUU 于 2015-11-12 12:09 编辑

Map集合元素取出:
public class Test{
       public static void main(String[] args){
           Map<Integer,String> m=new HashMap<Integer,String>();
           m.put(16, "李四");
           m.put(12, "张三");
           m.put(11, "刘六");
           //Set<Map.Entry<K,V>> entrySet()返回此映射所包含的映射关系的 Set 视图。
           //Map.Entry为数据类型,映射项(键-值对)。
           Set<Map.Entry<Integer, String>> s=m.entrySet();
           //创建set集合的迭代器
           Iterator<Map.Entry<Integer, String>> it=s.iterator();
           while (it.hasNext()){
               //Map.Entry<Integer, String> me=it.next();
               Integer key=it.next().getKey();
               String value=it.next().getValue();
               System.out.println(key+"="+value);
           }}}
求大神讲解,为什么以上红色的的获取键值方式会报错?????



作者: jiao731097245    时间: 2015-11-12 11:41
Integer key=it.next().getKey()  String value=it.next.getValue()  调用了两次it.next,即每判断一次,取出两个元素。判断最后一次hasNext时,只有一个元素,而取了两次元素,就会NoSuchElementException错误。
作者: DoubleUUU    时间: 2015-11-12 12:04
jiao731097245 发表于 2015-11-12 11:41
Integer key=it.next().getKey()  String value=it.next.getValue()  调用了两次it.next,即每判断一次,取 ...

明白了,多谢
作者: 零尘    时间: 2015-11-12 23:31
这个异常第一次见,学习了
作者: jlq    时间: 2015-11-12 23:38
支持一下  看卡




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2