对List及类似于线性表的元素 删除的顺序的考虑
来源:互联网 发布:冰川网络中签号 编辑:程序博客网 时间:2024/05/03 00:26
对于Colloection, 我一般需要用 for 循环,比如
for(int i=0, sz = list.size(); i< sz; i++){
System.out.println(list.get(i));
}
同样,删除时,也按照上面的写法
Object obj=..;
for(int i=0, sz = list.size(); i< sz; i++){
if(obj == list.get(i)){
list.remove(i);
}
}
有兴趣的朋友可以补充完,运行一下,看看会出现什么情况
如果你运行了的话,一定会报错,即使不报错,也不会得到你样到的结果,究其原因,在于list.remove(i)上,
一个列表,删除了前面的元素,这样,i的位置上的元素就变化了(应该是原来的i+1位置上的元素),但是 i++继续前行,就跳过了原来 i+1位置上的元素,大家可以画下图了解一下,所以可以这样解决
Object obj=..;
for(int i=0, sz = list.size(); i< sz; i++){
if(obj == list.get(i)){
list.remove(i);
i--;//使下个位置仍是 原来 i+1位置上的元素
}
}
还有一种方法,
Object obj=..;
for(int i= list.size() -1; i >=0; i--){
if(obj == list.get(i)){
list.remove(i);
}
}
这样也可以得到想要的结果,至于为什么?大家想想线性表的应该就会明白
//谢谢竹子,不过我评论不了自己的博客,郁闷
- 对List及类似于线性表的元素 删除的顺序的考虑
- 编写算法,对非递减顺序存储的线性表操作,将表中相等的多余元素删除,变为严格递增
- 线性表(List)---栈的顺序存储
- 线性表(List)---队列的顺序存储
- 第三周-删除线性表的元素
- 线性表的应用2(删除顺序表中的元素)
- 对C++ STL,list元素的循环删除操作
- python中对list遍历的过程中删除元素
- 顺序表删除相同的元素
- 线性表的顺序表示及实现
- 线性表的顺序存储结构及该结构的插入与删除
- 删除List里的元素
- List删除指定的元素
- List删除指定的元素
- Map、List元素的删除
- 线性表之<顺序表sqlist>的储存及插入、删除-C代码实现
- 线性表的添加、删除、插入功能的顺序实现
- 线性表的顺序储存及运算实现-------------顺序表
- 《开源合辑-(游戏/娱乐)之(PHP)》 第二部分
- CSS 期望表 (Wishlist)
- Windows Live ID总结
- 《开源合辑-(游戏/娱乐)之(PHP)》 第三部分
- 经典台词1
- 对List及类似于线性表的元素 删除的顺序的考虑
- 《开源合辑-(游戏/娱乐)之(PHP)》 第四部分
- 《开源合辑-(游戏/娱乐)之(PHP)》 第四部分
- 创业须知[转自http://hi.baidu.com/rainstudy/blog/item/f5c48658c93e53dd9c8204a1.html]
- 2020年基本实现城乡一体化 农民人均纯收入翻番
- .NET中的一些类型转换,待续
- 《开源合辑-(游戏/娱乐)之(PHP)》 第6部分
- CSS简介(二)
- mysql5.0 support regular expression