循环删除list中多个元素
来源:互联网 发布:淘宝上信用卡套现吗 编辑:程序博客网 时间:2024/06/09 18:00
错误的做法:
for(int i= 0;i<list.size();i--){for(int j= 0; j<list2.size();j++){if(list.get(i).contains(list2.get(j))){list.remove(i);}}}结果:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
因为在你删除元素的同事list.size()在变小,这样就会照成越界。
正确做法:
//因为要删除list里面的多个的值,所以会涉及到一个问题,就是当你删除掉下标为1的元素时,
//原来下标为2的元素会自动改变自己的下标为1,后面的元素依次把自己的下标值减一
//鉴于这种情况,我们想循环删除list中的多个元素的话,就必须从后往前删,这样保障了你删除了一个元素之后,
//list中元素的下标移动不会影响到那些需要删除,但是还未删除到的以元素
public class ListDel { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); list.add("6"); list.add("7"); list.add("8"); list.add("9"); list.add("10"); List<String> list2 = new ArrayList<String>(); list2.add("3"); list2.add("7"); list2.add("9"); for(int i= list.size()-1;i>=0;i--){ for(int j= 0; j<list2.size();j++){ if(list.get(i).contains(list2.get(j))){ list.remove(i); } } } System.out.println(list.toString()); }}结果:[1, 2, 4, 5, 6, 8, 10]
0 0
- 循环删除list中多个元素
- 循环删除list中的元素
- 循环删除List元素方法
- 循环删除list中的元素
- 循环删除List中的元素
- Python list循环删除元素
- 循环删除list集合元素
- for循环删除list中多个元素出现的误区
- 循环链表list删除元素
- Java循环删除List Set中的元素
- List循环删除元素时错漏问题
- List循环中删除特定元素
- go语言list循环删除元素(转载)
- foreach 循环,删除list中的元素是报错
- List 循环删除多个元素
- Java中循环删除list中的元素
- C#循环删除List中某个元素
- 循环删除list中元素的方法
- STM32---按键学习
- Struts2过程图
- C语言关键字”volatile”的意义(或重要性)
- 《赋得古原草送别》 白居易
- Cocos2d-x版的HelloWorld工程分析
- 循环删除list中多个元素
- poj 3268 Silver Cow Party(dijkstra最短路)
- 简单LRU cache 实现
- uva10020 - Minimal coverage
- HDU 4268 - Alice and Bob
- Java 写一个单例模式(Singleton)出来
- 初闻桂花香
- HDU 5033 Building (单调栈)
- Duilib学习笔记《02》— 界面布局