用跌代器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的话有什么更好的方法
...全文
105 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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当然可能越界
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告