链表删除问题 (一个链表的删除)
我在record类中定义如下
ublic static List<Record> sort2(List<Record> recordList,int nScore ){
for(int i = 0;i<recordList.size();i++){
if(Integer.parseInt(recordList.get(i).getScore())<nScore)
recordList.remove(i);
}
for(Record record1:recordList){
System.out.println(record1.getScore());
}
return recordList;
}之后在实现类中调用下面代码
int sort=98;
aList=Record.sort2( aList, sort);
System.out.println("asizelist()"+sort+aList.size());结果执行得到如下
asizelist()5023
88
88
98
98
75
88
78
78
98
76
98
98
98
98
asizelist()9814可以看到是错误。 要求是去掉小于98的记录 , 结果现在88等的还在 。
这个错误是如何产生, 如何修改代码完善?
我在record类中定义如下
ublic static List<Record> sort2(List<Record> recordList,int nScore ){
for(int i = 0;i<recordList.size();i++){
if(Integer.parseInt(recordList.get(i).getScore())<nScore)
recordList.remove(i);
}
for(Record record1:recordList){
System.out.println(record1.getScore());
}
return recordList;
}之后在实现类中调用下面代码
int sort=98;
aList=Record.sort2( aList, sort);
System.out.println("asizelist()"+sort+aList.size());结果执行得到如下
asizelist()5023
88
88
98
98
75
88
78
78
98
76
98
98
98
98
asizelist()9814可以看到是错误。 要求是去掉小于98的记录 , 结果现在88等的还在 。
这个错误是如何产生, 如何修改代码完善?
解决方案 »
- 改个小错
- 求 Java.awt.TextArea 如何得到里面的文本值 翻了下API实在是不知道怎么用了
- 关于做一个界面的问题
- 求高手解决个上传输入框的问题
- 菜鸟高分求助,如何把Panel上的可视控件保存成图片
- 谢谢甘草,这里拉分
- 如何将1983/08/23变换成1983-08-23
- 如何把int型转成String型?
- ********************我想通过WEB页面形式使用户录音,并且将录音信息保存到我的WEB服务器,请问大家怎么解决?********************
- 用jb如何编写给指定信箱发送e_mail,各位大哥帮帮忙,我快不行了
- 整型二维数组赋值给多个textfield
- 关于 new String(bytes) 的问题
if(Integer.parseInt(recordList.get(i).getScore()) <nScore)
{
recordList.remove(i);
i--;//这里变回去,把3位置上的移走后,原来的4变成了3,所以这个i暂时不变就行了
}
}
for(int i = 0;i <recordList.size();i++){
if(Integer.parseInt(recordList.get(i).getScore()) <nScore)
recordList.remove(i);
i--; //因为索引值发生了变化
}
for(Record record1:recordList){
System.out.println(record1.getScore());
}
}
i--;应该在if里边执行
{
Record record = recordList.next;
if(Integer.parseInt(record.getScore()) < nScore)
recordList.remove(record);
}
我的方法同
while(recordList.hasNext)
{
Record record = recordList.next;
if(Integer.parseInt(record.getScore()) < nScore)
recordList.remove(record);
}
for(int i = lst.size-1;i>-1;i--)
这样就不用管索引位置了。
{
recordList.remove(i);
i--;//这里变回去,把3位置上的移走后,原来的4变成了3,所以这个i暂时不变就行了
}