1. 程式人生 > >Java集合刪除的方法

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++;
        }