使用迭代器输出key和value出错

使用迭代器输出key和value出错

Iterator<Entry<String,String>> ite=animal.entrySet().iterator();

while(ite.hasNext()){

System.out.print(ite.next().getKey()+"-");

System.out.println(ite.next().getValue());

}

我用迭代器尝试输出key和value的值,为什么会报错

http://img1.sycdn.imooc.com/climg//5995aea60001e0e607270209.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕珊 2017-08-18 14:07:58

不能在循环中两次调用ite.next();

ite.next();是用来获取迭代器中的内容的,调用两次就获取了两次内容。正确的做法是将ite.next();赋值给一个Entry<String,String>的引用,比如为entry,然后用entry分别去调用getKey()和getValue()

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕码人7588266 #1
    非常感谢!
    2017-08-20 10:54:17
  • 请教下“将ite.next();赋值给一个Entry<String,String>的引用,比如为entry,”代码要怎么具体实现.. Iterator <Entry<Integer,String>> ite = animal.entrySet().iterator(); Set<Entry<Integer,String>> entry; //Entry<String,String>的引用这样写对吗... while(ite.hasNext()) { entry = ite.next();//这里会报错Type mismatch: cannot convert from Map.Entry<Integer,String> to Set<Map.Entry<Integer,String>> }
    2017-09-17 12:56:58
  • Set<Entry<Integer,String>> entry;这个地方有问题,就是Entry<Integer,String> entry;然后调用entry的getKey()和getValue()方法获取key和value的值
    2017-09-18 09:39:55
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师