今天在写为老师写一个项目的时候,其中在分类策略的时候出现了一个问题,有一个Vector类型的规则集,我要删除其中的一些规则,将要删除的规则的下标用一个List<Integer>存储,然后遍历list挨个删除规则,突然想到删除规则的同时规则集的长度也在变化,那么那些规则的下表就不正确了,换句话说:就是只有第一条规则能够正常删除,后面就会出错。
之前也遇到过这样的问题,当时在写程序的时候没有发现,到最后运行的时候出现了Exception,回头再找错误,进行修改。今天脑子突然迸出一个想法,写个测试程序试试:
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list = new LinkedList<String>();
list.add("1"); // 0
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
int[] tmp = new int[]{1,3,5,6};
for (int i = 0; i < tmp.length; i++) {
list.remove(tmp[i] - i);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
结果运行了一下,结果没有错。
哈哈,不知道这种方法是否已经使用,解决了一个小问题,心中猛然间有些许欢乐,程序员还有什么别的快乐呢???
望大牛不要喷哦,我正在努力,好好学习,天天向上。