用迭代器求map中键、值,其中键为自己创建的类的对象,结果如下,求解问题所在!

publicstaticvoidmain(String[]args){Map<Student,String>map=newHashMap<Student,String>(... public static void main(String[] args) { Map<Student, String> map = new HashMap<Student, String>(); map.put(new Student("avc",20), "aaa"); map.put(new Student("aaa",22), "sss"); map.put(new Student("bbb",24), "ddd"); Iterator<Student> it = key.iterator(); while(it.hasNext()){ System.out.println(it.next()+map.get(it.next())); }-----------------------输出结果如下:aaa22dddException in thread "main" java.util.NoSuchElementException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:925) at java.util.HashMap$KeyIterator.next(HashMap.java:956) at cn.itcast.demo.HomeWork1.main(HomeWork1.java:33)------图片如下(注释中的for遍历成功了),希望大神们解答疑惑。 展开
 我来答
xiasuhuei321
2017-05-27 · TA获得超过521个赞
知道小有建树答主
回答量:563
采纳率:0%
帮助的人:274万
展开全部

问题出在输出语句,首先Iterator这个接口注释里就说了,如果没有更多的元素,你调用这个方法就会抛NoSuchElementException
异常。next每调用一次,都会让指针后移一位。你可以这么写:

Student s = it.next();
System.out.println(s+map.get(s));
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式