for循环删除list中多个元素出现的误区
2016-09-15 11:32
369 查看
错误的做法是:
因为在你删除元素的同时list.size()也在变小,这样就会照成越界。
正确做法:因为要删除list里面的多个的值,所以会涉及到一个问题,就是当你删除掉下标为1的元素时,原来下标为2的元素会自动改变自己的下标为1,后面的元素依次把自己的下标值减1,鉴于这种情况,我们想循环删除list中的多个元素的话,就必须从后往前删,这样保障了你删除了一个元素之后,list中元素的下标移动不会影响到那些需要删除,但是还未删除到的以元素.
for(int i= 0;i<list.size();i++)
因为在你删除元素的同时list.size()也在变小,这样就会照成越界。
正确做法:因为要删除list里面的多个的值,所以会涉及到一个问题,就是当你删除掉下标为1的元素时,原来下标为2的元素会自动改变自己的下标为1,后面的元素依次把自己的下标值减1,鉴于这种情况,我们想循环删除list中的多个元素的话,就必须从后往前删,这样保障了你删除了一个元素之后,list中元素的下标移动不会影响到那些需要删除,但是还未删除到的以元素.
for(int i= list.size()-1;i>=0;i--)
相关文章推荐
- for循环删除list元素陷阱
- 使用倒序循环删除list中重复的相同元素 、 string的split使用、返回list(string)中出现多次的某元素的indexs...
- 犯了一个菜鸟必备的很郁闷的错误:for循环删除LinkedList集合中元素
- 对C++ STL,list元素的循环删除操作
- List元素的几种for循环方式及其点评
- Java中如何循环删除一个集合(如List)中的多个元素
- java 中,循环删除list中的多个元素实现
- 对C++ STL,list元素的循环删除操作 //断链,出错地方
- Java循环删除List Set中的元素
- 遍历删除 list 中符合条件的元素时(for, Remove),应从后往前进行
- 循环删除list中多个元素
- py 删除list中重复出现得元素
- Java中如何循环删除一个集合(如List)中的多个元素
- 关于STL的list,vector等用迭代器iterator,用erase删除元素出现的问题。
- Java中如何循环删除一个集合(如List)中的多个元素
- 对C++ STL,list元素的循环删除操作
- foreach循环删除集合中的元素出现ConcurrentModificationException异常(补充)
- List元素的几种for循环方式及其点评
- Java 循环遍历删除set list中的元素
- java中循环遍历删除List和Set集合中元素的方法