天天看點

List的remove方法,你是否真的懂了

題目是這樣的:

import java.util.*;  

 public class collectiontest { 

        public static void main(string[] args) { 

            treeset set = new treeset(); 

            arraylist list = new arraylist(); 

            vector vector = new vector(); 

            for (int i = 0; i < 10; i++) { 

                set.add(i); 

               list.add(i); 

               vector.add(i); 

           } 

           system.out.println("初始化後set裡的值為:" + set.tostring()); 

          system.out.println("初始化後list裡的值為:" + list.tostring()); 

          system.out.println("初始化後vector裡的值為:" + vector.tostring()); 

          for (int i = 0; i < 5; i++) { 

              set.remove(i); 

              list.remove(i); 

              vector.remove(i); 

           system.out.println("此時set的值為" + set.tostring()); 

           system.out.println("此時後list的值為" + list.tostring()); 

           system.out.println("此時後vector的值為" + vector.tostring()); 

       } 

   } 

程式運作的結果:

初始化後 set裡的值為:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

初始化後list裡的值為:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

初始化後vector裡的值為:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

處理後set的值為[5, 6, 7, 8, 9]

處理後list 的值為[1, 3, 5, 7, 9]

處理後vector的值為[1, 3, 5, 7, 9]

看出來了嗎,最後list和和vector得到結果不是想象的[[5, 6, 7, 8, 9]],而是[1, 3, 5, 7, 9]。

 注解:

list 裡兩個方法:

public e remove(int index)。//每次删除一個元素,後面的元素自動全部向前移動;

public boolean remove(object o)//這個删除對象