Java集合删除的方法

不能用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++;
        }

猜你喜欢

转载自blog.csdn.net/qq_39455116/article/details/80965187