黑马程序员技术交流社区

标题: 用Map集合存储键对值时,运行发现没有元素取代 [打印本页]

作者: 发哥-阿花    时间: 2013-11-6 16:21
标题: 用Map集合存储键对值时,运行发现没有元素取代
本帖最后由 发哥-阿花 于 2013-11-6 17:10 编辑

有时一个小问题,自己就被弄死了,各位帮找找,希望真的是小问题。


  1. import java.util.*;
  2. class MapTest4
  3. {
  4. public static void main(String[] args)
  5. {
  6. Map<String,Integer> m = new TreeMap<String,Integer>();
  7. Set<Map.Entry<String,Integer>> setentry= m.entrySet();
  8. Iterator<Map.Entry<String,Integer>> it =setentry.iterator();
  9. m.put("abc01",1);
  10. m.put("abc02",2);
  11. m.put("abc03",3);
  12. m.put("abc04",4);

  13. while(it.hasNext())
  14. {
  15. Map.Entry<String,Integer> me = it.next();
  16. String str = me.getKey();
  17. Integer i = me.getValue();
  18. System.out.println(str);
  19. }
  20. /*
  21. System.out.println(m);
  22. 运行输出{abc01=1, abc02=2, abc03=3, abc04=4}
  23. System.out.println(setentry);
  24. 运行输出{abc01=1, abc02=2, abc03=3, abc04=4}
  25. */
  26. System.out.println(it.next());

  27. //提示NoSuchElementException (没有元素可以迭代)。



  28. }
  29. }

复制代码


作者: 李慧声    时间: 2013-11-6 17:02
语句书写的顺序,逻辑不对吧,楼主
07行,08行,在把map集合中的元素往set中装的时候,此时map集合里啥都没有啊,你在12、13行后面并没有重新制定set集合和Iterater迭代器啊,那你迭代的时候肯定啥都没有呀!
你把07,08行写到12行以后,14行之前这样不就OK了吗。

作者: 发哥-阿花    时间: 2013-11-6 17:10
李慧声 发表于 2013-11-6 17:02
语句书写的顺序,逻辑不对吧,楼主
07行,08行,在把map集合中的元素往set中装的时候,此时map集合里啥都没 ...

{:3_50:}{:3_46:}{:3_49:}

就说嘛,真的是小问题,丢人了啊,浪费了一下午时间。HashMap,TreeMap什么都用遍了。谢谢啊
作者: 李慧声    时间: 2013-11-6 17:17
发哥-阿花 发表于 2013-11-6 17:10
就说嘛,真的是小问题,丢人了啊,浪费了一下午时间。HashMap,TreeMap什么都 ...

呵呵 这很值得啊 以后就不会出现这样的错误
作者: 发哥-阿花    时间: 2013-11-6 17:48
李慧声 发表于 2013-11-6 17:17
呵呵 这很值得啊 以后就不会出现这样的错误

嗯嗯,
你是想进27期吗?求认识
作者: 李慧声    时间: 2013-11-6 18:11
发哥-阿花 发表于 2013-11-6 17:48
嗯嗯,
你是想进27期吗?求认识

啊啊,云7期,不走android




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