<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Java集合-Collection

          共 4864字,需瀏覽 10分鐘

           ·

          2021-03-13 11:01

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


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

          創(chuàng)建Collection

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


          Collection collection = new ArrayList();

          上面的示例適用于Collection的每個(gè)子類型。

          Collection子類

          Collection的子類接口:

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

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

          下面的代碼是使用Collection的一個(gè)方法:

          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增加元素

          無(wú)論使用Collection的哪個(gè)子類,都有標(biāo)準(zhǔn)的增加元素的方法,通過(guò)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中會(huì)存在兩個(gè)同樣的元素。

          Collection移除元素

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

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

          Collection增加另外一個(gè)Collection

          同樣可以用Collection的addAll()方法增加另外一個(gè)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(),則集合對(duì)象本身將被添加,而不是其元素。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中不存在的元素,會(huì)被忽略,不會(huì)被增加,下面代碼:

          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有兩個(gè)方法可以檢查是否包含某個(gè)或者某些確定的元素, contains()和 containsAll()方法,下面是代碼:

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

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

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

          Collection大小

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

          int numberOfElements = collection.size();    

          迭代Collection

          可以通過(guò)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);
          }

          同樣可以通過(guò)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)容不錯(cuò)的,歡迎「分享」「」或者點(diǎn)擊「在看」支持,謝謝各位。

          瀏覽 53
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  香蕉三级片 | 青娱乐在线精品 | 欧美性青草视频在线看 | 欧美成人免费视频 | 成人久操|