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

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

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

    swzhebei

    常用鏈接

    統計

    最新評論

    • 1.?re: 調用百度地圖小實例
    • 如果我有100個經緯度 請問,您是不是再代碼里寫100個?你這樣沒有價值,如何獲取動態的請說明!
    • --toly
    • 2.?re: 調用百度地圖小實例
    • 更改經緯度就不行了?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?!
    • --你姥姥

    java集合詳解

    本文系 www.javady.com網站原創
    總接口:Iterable<T>  實現這個接口允許對象成為 "foreach" 語句的目標。

       Collection<E> 層次結構 中的根接口。Collection 表示一組對象

    一、   List  :實現 collection接口  有序的集合  可以允許重復

    ArrayList                           
    初始大小 10
    擴容因子 (大小*3)/2 + 1
    擴容例子 10 超過時之后擴容到  16  然后  25 然后 38...
    數據處理 刪除其中一個元素后后面的元素會自動向前推
    線程是否安全 不安全
    優勢 ArrayList的優勢在于讀取和表尾插入
    多線程使用 List list = Collections.synchronizedList(new ArrayList(…))

          

    LinkedList
    說明 List接口的鏈接列表實現 。
    初始大小 1
    數據處理 刪除其中一個元素后后面的元素會自動向前推,

     

    LinkedList 中的鏈接關系是由 Entity實現的,

    每個Entity都有 上一個Entity引用 下一個Entity引用

    本身元素值Entry(E element, Entry<E> next, Entry<E> previous)

    LinkedList 類還為在列表的開頭及結尾 get、remove 和 insert

    元素提供了統一的命名方法。

    此類實現 Queue 接口,為 add、poll 等提供先進先出隊列操作

    優勢 LinkedList的優勢在于表中插入和刪除
    線程是否安全 不安全 ,可以使用如下進行安全處理

     

    List list = Collections.synchronizedList(new LinkedList(...));

     

    Vector
    說明 Vector 類可以實現可增長的對象數組
    初始大小 10
    擴容因子 1 ,  默認擴容一倍
    擴容例子 10 超過時之后擴容到  20  然后  40 然后 80…
    數據處理 刪除其中一個元素后后面的元素會自動向前推
    是否同步 Vector 是同步的
    用法 一般在多線程中使用對于一般的數據存儲直接用ArrayList

     

    Stack
    類型解釋 表示后進先出(LIFO)的對象堆棧 。

     

    它通過五個操作對類 Vector 進行了擴展 ,

    允許將向量視為堆棧。

    它提供了通常的 push 和 pop 操作

    幾種方法 empty()

     

    測試堆棧是否為空。

    E peek()

    查看棧頂對象而不移除它。

    E pop()

    移除棧頂對象并作為此函數的值返回該對象。

    E push(E item)

    把項壓入棧頂。

    int search(Object o)

    返回對象在棧中的位置,以 1 為基數。

    Arrays                           
    說明 專門用來操作數組的輔助類  Array  固定個數效率最高
    數據處理 Arrays中擁有一組static函數,
    equals():  比較兩個array是否相等。array擁有相同元素個數,

     

    且所有對應元素兩兩相等。
    fill():    將值填入array中。
    sort():    用來對array進行排序。
    binarySearch():在排好序的array中尋找元素。
    System.arraycopy():array的復制

    優勢 這個就是用來處理數組的,效率特別高

     

    如果之前對Arrays沒這么的重視,在J2SE 5.0之后,可以多關照它幾眼

    。如果有數組操作方面的相關需求,可以先查查 java.util.Arrays的API文

    件說明,看看有沒有現成的方法可以使用

     

    二、Set   :一個不包含重復元素的 collection。

    HashSet
    說明 內部使用HashMap 來存儲數據
    初始大小 16
    擴容因子 數據超過當前大小*0.75 容量擴一倍
    擴容例子 當前容量16 如果插入13個數 超過了(16*0.75=12)

     

    容量增加16 最后容量是 32。

    優勢 不允許有重復的元素
    線程是否安全 不安全,可以使用如下進行安全處理

     

    Set s = Collections.synchronizedSet(new HashSet(...))

     

    LinkedHashSet
    說明 內部使用HashMap 來存儲數據
    初始大小 16
    擴容因子 數據超過當前大小*0.75 容量擴一倍
    擴容例子 當前容量16 如果插入13個數 超過了(16*0.75=12)

     

    容量增加16 最后容量是 32。

    優勢 不允許有重復的元素 、 查詢足夠快 、 有序
    線程是否安全 不安全,可以使用如下進行安全處理

     

    Set s = Collections.synchronizedSet(new HashSet(...))

     

    三、Map  :一個不包含重復元素的 無序集合  鍵值對 。

     

    HashMap
    說明 內部使用Entity來存儲數據,key可以為空

     

    put方法:如果key為空,則替換換Key為空的值,

    否則插入到第 O 位置上。

    for (Entry<K,V> e = table[0]; e != null; e = e.next) {

    //null key都放在table[0]上

    if (e.key == null) {

    V oldValue = e.value;

    e.value = value;

    e.recordAccess(this);

    return oldValue;

    }

    }

    如果key不為空,先算出來key對象的hashcode ,

    然后調用函數 hash()在算一次,

    最后把結果和當前hash大小進行計算找到存放該值的位置;

    如果該位置有值 直接把當前值(entity)鏈接到該值最前面 ,

    Entry<K,V> e = table[bucketIndex];

    //這個地方獲取當前位置的 e

    //table[bucketIndex] = new Entry<K,V>(hash, key, value, e);

    //這個地方把要插入的entity的next屬性指向 e,

    然后把整個entity放入 hashMap的index位置,

    如果沒有值就直接放入,

    數組位置每變大一次  里面每個對象的位置都要重新計算一下

    初始大小 16
    擴容因子 數據超過當前大小*0.75 容量擴一倍
    擴容例子 當前容量16 如果插入13個數 超過了(16*0.75=12)

     

    容量增加16 最后容量是 32

    優勢 查詢足夠快
    線程是否安全 線程不安全  可以使用如下進行安全處理

     

    Set s = Collections.synchronizedSet(new HashSet(...))

     

     

    Hashtable
    初始大小 11
    擴容因子 大小 = 大小 * 2 + 1
    擴容例子 11 然后  23 然后47 ....
    是否同步 hashtable是同步的.
    優勢 查詢足夠快
    說明 key  不允許為空

     

    數據的put和get和hashMap基本上一致

    里面的所有方法除了不需要同步的都有 synchronized

     

     

    LinkedHashMap
    初始大小 16
    擴容因子 數據超過當前大小*0.75 容量擴一倍
    擴容例子 當前容量16 如果插入13個數 超過了(16*0.75=12)

     

    容量增加16 最后容量是 32

    是否同步 異步線程不安全 多線程使用可以如下

     

    Map m = Collections.synchronizedMap(new LinkedHashMap(...))
    優勢 查詢足夠快的  有序
    說明 鏈表的形式存儲數據 使用的hash算法保持數據,但同樣也維護了一個插入

     

    順序查詢對象時,速度足夠快

     

    TreeMap 
    初始大小 0
    擴容因子 1
    擴容例子 每插入一個鍵值對,內部創建一個entity來存儲    size + 1
    是否同步 異步線程不安全 多線程使用可以如下

     

    Map m = Collections.synchronizedMap(new TreeMap(...));
    優勢  能夠維護其內元素的排序狀態
    說明 TreeMap 初始化為0 , 每插入一個鍵值對,內部創建一個entity來存儲

     

    內部實現和維護的是一顆紅黑樹,遍歷的時候使用的是前序遍歷法,但是

    查詢get方法的時候需要遍歷,速度不如直接使用hash算法的快

     

     

    Properties
    初始大小 11
    擴容因子 大小 = 大小 * 2 + 1
    擴容例子 11 然后  23 然后47 ....
    是否同步 是同步的.
    優勢 查詢足夠快   可保存在流中或從流中加載數據
    說明 實現了 HashTable  表示了一個持久的屬性集。

     

    Properties 可保存在流中或從流中加載數據。

     

     

    posted on 2012-05-14 16:50 透明的魚 閱讀(294) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: caoporm碰最新免费公开视频| 日韩免费无砖专区2020狼| 色费女人18女人毛片免费视频| 久久精品国产亚洲AV高清热| 亚洲精品岛国片在线观看| 免费一本色道久久一区| 一级毛片免费观看不卡的| 一级毛片在线免费视频| 亚洲av无码专区首页| 亚洲一区二区三区免费视频 | 亚洲免费网站在线观看| 亚洲精品乱码久久久久久久久久久久| 又粗又黄又猛又爽大片免费 | 亚洲成a人片7777| 久久亚洲AV午夜福利精品一区 | 亚洲av无码成人影院一区| 亚洲一级黄色大片| 亚洲激情黄色小说| 亚洲最大福利视频网站| 久久精品国产精品亚洲色婷婷| 国产亚洲美女精品久久久2020| 高清在线亚洲精品国产二区| 免费鲁丝片一级观看| 免费看香港一级毛片| 成人免费在线视频| 成人免费毛片观看| 日韩特黄特色大片免费视频| 久久综合AV免费观看| 在线观看免费为成年视频| 成年女性特黄午夜视频免费看| 啦啦啦中文在线观看电视剧免费版| 国产桃色在线成免费视频| 麻豆一区二区免费播放网站| 114一级毛片免费| 黄页网站免费在线观看| 国产精品视频免费一区二区| 成人免费午夜视频| 又爽又高潮的BB视频免费看| 亚洲一本大道无码av天堂| 亚洲综合无码AV一区二区| 亚洲AV无码日韩AV无码导航|