不能用for Each的方式删除一个集合
public static void main(String[] args) {
List<String> list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for (int i = 0; i < list.size(); i++) {
list.remove(i);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(i+":"+list.get(i));
}
}
只能用迭代器的方式,他因为集合并没有完全删除,原来,集合删除元素时,集合的size会变小,连带索引都会改变。
public static void main(String[] args) {
List<String> list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
Iterator lists = list.iterator();
while (lists.hasNext()) {
lists.next();
lists.remove();
}
for (int i = 0; i < list.size(); i++) {
System.out.println(i+":"+list.get(i));
}
}
同时如果相对集合中的元素做出修改,不用新建一个集合或者新建一个对象,直接在原来的集和中做出修改即可。
//advertiserDOList是一个集合
for(int a=0;a<advertiserDOList.size();a++){
advertiserDOList.get(a).setAllCostToday(new BigDecimal(0+a));
}
Iterator it = advertiserDOList.iterator();
int num =1;
while(it.hasNext()) {
System.out.println(num+" "+it.next()+" 前面的是");
num++;
}