用跌代器iterator出错,哥们给看看!

zhangyu6050 2004-10-03 06:04:41
程序说明:
list中的元素有个属性score,类型是float型,可以通过getScore()得到
Iterator iter=list.iterator();
while(iter.hasNext()){
float temp=((Score)iter.next()).getScore();
程序在这里出错!!!——〉 float tempNext=((Score)iter.next()).getScore();

if(temp>tempNext)
{
minScore=tempNext;
maxScore=temp;
}

else {
minScore=temp;
maxScore=tempNext;
}
averageScore+=(temp+tempNext);

}

估计是访问越界,但如果硬是要用iterator的话有什么更好的方法
...全文
167 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyu6050 2004-10-03
  • 打赏
  • 举报
回复
haha
楼上的老兄,已经解决了。二楼的方法。
梦想家起飞 2004-10-03
  • 打赏
  • 举报
回复
哦不,我想我弄错了。你把错误信息贴出来看看。
梦想家起飞 2004-10-03
  • 打赏
  • 举报
回复
什么呀,((Score)iter.next()).getScore()语句返回的是一个Object,你将一个Object不经转型就赋值给一个float,当然要出错了。
zhangyu6050 2004-10-03
  • 打赏
  • 举报
回复
Iterator iter=list.iterator();
while(){
float temp=((Score)iter.next()).getScore();
程序在这里出错!!!——〉 float tempNext=((Score)iter.next()).getScore();

if(temp>tempNext)
{
minScore=tempNext;
maxScore=temp;
}

else {
minScore=temp;
maxScore=tempNext;
}
averageScore+=(temp+tempNext);
if(!iter.hasNext())
break;
}
应该可以了吧
jdk150 2004-10-03
  • 打赏
  • 举报
回复
float temp=((Score)iter.next()).getScore();
float tempNext=((Score)iter.next()).getScore();
----调用两次next当然可能越界

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧