1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Java集合-Collection

        共 4864字,需瀏覽 10分鐘

         ·

        2021-03-13 11:01

        點擊關(guān)注,與你共同成長!


        Collection接口 (java.util.Collection) 是java集合根接口中的一個,盡管不直接實例化Collection,但是我們經(jīng)常用到其子類,而且通常把其子類當(dāng)做Collection使用,本文我們會講到。

        創(chuàng)建Collection

        正如上面所說,我們不直接實例化Collection,而是實例化其子類,下面是創(chuàng)建Collection子類List的代碼:


        Collection collection = new ArrayList();

        上面的示例適用于Collection的每個子類型。

        Collection子類

        Collection的子類接口:

        • List
        • Set
        • SortedSet
        • NavigableSet
        • Queue
        • Deque

        Java沒有提供Collection接口的可用實現(xiàn),因此必須使用列出的子類型之一。Collection接口僅僅定義了一組所有子類都共享的方法,你可以忽略它的特定類型,把它當(dāng)作一個Collection來處理。這是標(biāo)準(zhǔn)的繼承,所以沒有什么神奇之處,但是它仍然可以是一個很好的特性,下文會講述這些共同的操作。

        下面的代碼是使用Collection的一個方法:

        public class MyCollectionUtil{
         
          public static void doSomething(Collection collection) {
            
            Iterator iterator = collection.iterator();
            while(iterator.hasNext()){
              Object object = iterator.next();
         
              //do something to object here...
            }
          }
        }

        下面是幾種不同的Collection子類調(diào)用上面的方法:

        Set  set = new HashSet();
        List list = new ArrayList();
         
        MyCollectionUtil.doSomething(set);
        MyCollectionUtil.doSomething(list);    

        Collection增加元素

        無論使用Collection的哪個子類,都有標(biāo)準(zhǔn)的增加元素的方法,通過Collection的add()方法增加元素,下面是代碼:

        String     anElement  = "an element";
        Collection collection = new HashSet();
         
        boolean didCollectionChange = collection.add(anElement);

        add()方法增加指定的元素,如果Collection因調(diào)用add()方法而更改,則返回true。如果Set中已經(jīng)包含了此元素,那么就不再增加,另一方面,如果是List,則List中會存在兩個同樣的元素。

        Collection移除元素

        remove()方法用于移除指定的元素,如果元素在Collection則會返回true,如果不存在則會返回false,下面是代碼:

        boolean wasElementRemoved = collection.remove("an element");

        Collection增加另外一個Collection

        同樣可以用Collection的addAll()方法增加另外一個Collection,下面是代碼:

        Set  aSet  = ... // get Set  with elements from somewhere
         
        Collection collection = new HashSet();
         
        collection.addAll(aSet);    //returns boolean too, but ignored here

        Collection 的ddAll()方法增加參數(shù)Collection中的所有元素,但是增加的不是Collection本身僅僅是其元元素,如果使用Collection作為參數(shù)調(diào)用add(),則集合對象本身將被添加,而不是其元素。addAll()方法的具體行為取決于Collection子類型。某些Collection子類型允許將同一元素多次添加,而其他子類型則不允許。

        Collection移除Collection
        Collection的removeAll()移除給定參數(shù)Collection中的所有元素,如果參數(shù)Collection中的元素在本身Collection中不存在,則僅僅是忽略,下面是代碼:

        Collection objects = //... get a collection of objects from somewhere.
         
        collection.removeAll(objects);

        保留給定的Collection中的元素

        Collection 的retainAll()方法剛好和 removeAll()方法相反,不是移除所有給定參數(shù)中的Collection元素,而是保留這些元素,移除其他的元素,需要注意的是僅僅保留原Collection中存在的元素。任何在參數(shù)中存在而原Collection中不存在的元素,會被忽略,不會被增加,下面代碼:

        Collection colA = new ArrayList();
        Collection colB = new ArrayList();
         
        colA.add("A");
        colA.add("B");
        colA.add("C");
         
        colB.add("1");
        colB.add("2");
        colB.add("3");
         
        Collection target = new HashSet();
         
        target.addAll(colA);     //target now contains [A,B,C]
        target.addAll(colB);     //target now contains [A,B,C,1,2,3]
         
        target.retainAll(colB);  //target now contains [1,2,3]

        檢查Collection是否包含確定的元素

        Collection有兩個方法可以檢查是否包含某個或者某些確定的元素, contains()和 containsAll()方法,下面是代碼:

        Collection collection = new HashSet();
        boolean containsElement = collection.contains("an element");
         
        Collection elements = new HashSet();
        boolean containsAll = collection.containsAll(elements);

        如果Collection中包含某個元素contains() 方法會返回true,否則會返回false。

        如果Collection中包含給定Collection的所有元素,那么containsAll()返回true,否則返回false。

        Collection大小

        可以調(diào)用Collection的size()方法,返回Collection中的元素個數(shù),下面代碼:

        int numberOfElements = collection.size();    

        迭代Collection

        可以通過Iterator迭代Collection中的所有元素,下面是代碼:

        Collection collection = new HashSet();
        //... add elements to the collection
         
        Iterator iterator = collection.iterator();
        while(iterator.hasNext()){
            Object object = iterator.next();
            System.out.println(object);
        }

        同樣可以通過for-each循環(huán)迭代Collection:

        Collection collection = new HashSet();
        collection.add("A");
        collection.add("B");
        collection.add("C");
         
        for(Object object : collection) {
            System.out.println(object);
        }


        Java集合-Map

        Java集合-Deque

        Java集合-Iterator

        Java集合-Stack 


        以上,便是今天的分享,希望大家喜歡,覺得內(nèi)容不錯的,歡迎「分享」「」或者點擊「在看」支持,謝謝各位。

        瀏覽 53
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            99白浆 | 久久激情av拍插 国产精品高清无码 | 日本xxxxxxxxx | 明星大尺度激情做爰视频 | 西方美术人文艺术 | 午夜激情在线观看 | 最新操逼网 | 操你妹影视 | 禁忌伦理10 | 爱情岛黄色片 |