<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一、Collections類和Collection接口

             Collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作。

        Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。一些 Collection允許相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接繼承自Collection的 類,Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。

    二、現(xiàn)在來談?wù)凧ava集合的一些實現(xiàn)類。

    Collection
    List

    ArreyList 

    Vector

    LinkedList

    │└Stack

    └Set

    HashSet
    LinkedHashSet

    │└TreeSet

     

    List代表有序、重復(fù)的集合

    1.ArrayList類
      ArrayList實現(xiàn)了可變大小的數(shù)組。它允許所有元素,包括null。ArrayList沒有同步。
    size,isEmpty,get,set方法運行時間為常數(shù)。但是add方法開銷為分?jǐn)偟某?shù),添加n個元素需要O(n)的時間。其他的方法運行時間為線性。
      每個ArrayList實例都有一個容量(Capacity),即用于存儲元素的數(shù)組的大小。這個容量可隨著不斷添加新元素而自動增加,但是增長算法 并沒有定義。當(dāng)需要插入大量元素時,在插入前可以調(diào)用ensureCapacity方法來增加ArrayList的容量以提高插入效率。
      和LinkedList一樣,ArrayList也是非同步的(unsynchronized)。

    2.Vector類
      Vector非常類似ArrayList,但是Vector是同步的。由Vector創(chuàng)建的Iterator,雖然和ArrayList創(chuàng)建的Iterator是同一接口,但是,因為Vector是同步的,當(dāng)一個Iterator被創(chuàng)建而且正在被使用,另一個線程改變了Vector的狀態(tài)(例如,添加或刪除了一些元素),這時調(diào)用Iterator的方法時將拋出ConcurrentModificationException,因此必須捕獲該異常。

     

    3.LinkedList類
      LinkedList實現(xiàn)了List接口,允許null元素。此外LinkedList提供額外的get,remove,insert方法在 LinkedList的首部或尾部。這些操作使LinkedList可被用作堆棧(stack),隊列(queue)或雙向隊列(deque)。
      注意LinkedList沒有同步方法。如果多個線程同時訪問一個List,則必須自己實現(xiàn)訪問同步。一種解決方法是在創(chuàng)建List時構(gòu)造一個同步的List:
        List list = Collections.synchronizedList(new LinkedList(...));

     

    4.Stack 類
      Stack繼承自Vector,實現(xiàn)一個后進先出的堆棧。Stack提供5個額外的方法使得Vector得以被當(dāng)作堆棧使用?;镜膒ush和pop方法,還有peek方法得到棧頂?shù)脑兀琫mpty方法測試堆棧是否為空,search方法檢測一個元素在堆棧中的位置。Stack剛創(chuàng)建后是空棧。

     

    Set代表無序、不可重復(fù)的集合

     

    Map
    HashMap

    Hashtable

    TreeMap
    └WeakHashMap

    Map沒有繼承Collection接口

    1.Hashtable類
      Hashtable繼承Map接口,實現(xiàn)一個key-value映射的哈希表。任何非空(non-null)的對象都可作為key或者value。Hashtable是同步的。

     

    2.HashMap類
      HashMap和Hashtable類似,不同之處在于 HashMap是非同步的,并且允許null,即null value和null key。,但是將HashMap視為Collection時 (values()方法可返回Collection),其迭代子操作時間開銷和HashMap的容量成比例。因此,如果迭代操作的性能相當(dāng)重要的話,不要 將HashMap的初始化容量設(shè)得過高,或者load factor過低。

    3.WeakHashMap類
      WeakHashMap是一種改進的HashMap,它對key實行“弱引用”,如果一個key不再被外部所引用,那么該key可以被GC回收。

     

     

    三、集合類的遍歷

    遍歷通用Collection

    Iterator it = collection.iterator(); // 獲得一個迭代子
      while(it.hasNext()) {
       Object obj = it.next(); // 得到下一個元素
    }


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    posts - 34, comments - 38, trackbacks - 0, articles - 0

    Copyright © 陳小東

    主站蜘蛛池模板: 免费国产黄网站在线看| 亚洲人成色99999在线观看| 精精国产www视频在线观看免费| 国产一级高清免费观看| 色窝窝亚洲AV网在线观看| 国产做床爱无遮挡免费视频| 亚洲国产精品网站在线播放| 美女被免费视频网站a国产| 亚洲欧美aⅴ在线资源| 国产午夜免费秋霞影院| 黄页网站在线免费观看| 亚洲精品高清在线| a毛片在线还看免费网站| 亚洲日本中文字幕区| 久久九九兔免费精品6| 亚洲色大成网站www尤物| 国产成人涩涩涩视频在线观看免费 | 日韩免费高清视频网站| 精品亚洲成A人在线观看青青| 免费国产高清视频| 精品国产污污免费网站入口| 亚洲v高清理论电影| 69堂人成无码免费视频果冻传媒| 亚洲最大的成人网站| 亚洲精品成人在线| 国内精品免费视频精选在线观看| 亚洲成年人电影在线观看| 成人免费淫片在线费观看| 中美日韩在线网免费毛片视频| 亚洲爆乳无码专区| 免费无码肉片在线观看| 美女隐私免费视频看| 亚洲春色在线视频| 手机在线毛片免费播放| 国产久爱免费精品视频| 亚洲欧洲久久精品| 亚洲精品高清在线| 日本亚洲免费无线码| 一级毛片aaaaaa视频免费看| 亚洲午夜精品一区二区公牛电影院 | 在线A亚洲老鸭窝天堂|