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

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

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

    Code@Oxidy

    統計

    積分與排名

    BookSites

    IT NewsSite

    IT Websit

    Java WebSits

    knowledge Library

    My Blog

    SoftWare

    閱讀排行榜

    Java工具類學習筆記[轉載]

    Java工具類學習筆記
    本人早期整理的Java工具類學習筆記,分享出來,希望大家多多提點建議和意見。

    集合類
    • Set
      • HashSet
        • 優點:
            后臺實現一個hash table 加速get和contains方法。后臺使用數組保存
          缺點:
           默認大小為16, 如果超過則需要重新申請內存空間,大小為原來的兩倍,并把原來的數據內容復制到
           新的內存空間中。
           線程不安全(需通過Collections.synchronizedList方法設置)
           加入的元素順序會因其內部的hash排序而改變

          注:通常缺省的load factor 0.75較好地實現了時間和空間的均衡。增大load factor可以節省空間但相應的查找時間將增大,這會影響像get和put這樣的操作。

      • LinkedHashSet
        • 優點:
            后臺實現一個hash table 加速get和contains方法。后臺使用鏈表保存
          缺點:
           默認大小為16, 如果超過則需要重新申請內存空間,大小為原來的兩倍,并把原來的數據內容復制到
           新的內存空間中。
           線程不安全(需通過Collections.synchronizedList方法設置)
           加入的元素順序會因其內部的hash排序而改變

          注:通常缺省的load factor 0.75較好地實現了時間和空間的均衡。增大load factor可以節省空間但相應的查找時間將增大,這會影響像get和put這樣的操作。

      • TreeSet
        • 優點:
            通過一個HashMap來實現數據的保存,內部實現紅黑樹數據結構,使所有元素按升序保存。
            提供高效的get和contains方法,保存操作的效率為log(n)
          缺點:
           默認大小為16, 如果超過則需要重新申請內存空間,大小為原來的兩倍,并把原來的數據內容復制到
           新的內存空間中(來自HashMap)。
           線程不安全(需通過Collections.synchronizedList方法設置)
           加入的元素升級排序而改變

          注:treeset對元素有要求,必須實現Comparable接口或是Comparator 接口)

          注:通常缺省的load factor 0.75較好地實現了時間和空間的均衡。增大load factor可以節省空間但相應的查找時間將增大,這會影響像get和put這樣的操作。

      • CopyOnWriteArraySet
        • 優點:
           針對于對Set操作的情況有很多變化時使用,優其是在高并發的情況不想使用同步控制鎖時
          缺點:
           消耗比較大的資料,每次作更新操作時,都會重新Copy一塊內存后,再做合并操作。
    • List
      • ArrayList
        • 優點:
             使用數組,提供快速的get,add和iterate方法,占用比較小的內存空間
          缺點:
             線程不安全(需通過Collections.synchronizedList方法設置)
             insert和remove操作,非常慢(需要移動數組元素來實現)
             當size超過時,需要新建一個較大的數據(默認大小是10,增量是 (size * 3)/2 + 1,
             且把原來的數據都復制到新的上面)

      • LinkedList
        • 優點:
             使用鏈表結構,提供快速的add, insert, remove方法,占用比較小的內存空間
          缺點:
             線程不安全(需通過Collections.synchronizedList方法設置)
             get操作,非常慢(需要從head一級級遍歷查找)

      • Vector
        • 優點:
           線程安全。
          缺點:
           相對于ArrayList效率要低。擁有ArrayList的缺點。
      • CopyOnWriteArrayList
        • 優點:
           針對于對List操作的情況有很多變化時使用,優其是在高并發的情況不想使用同步控制鎖時
          缺點:
           消耗比較大的資料,每次作更新操作時,都會重新Copy一塊內存后,再做合并操作。
      • TreeList(apache commons-collections)提供
        • 優點:
           基于二叉數  提供比較快速的get, add,insert,iterate,remove方法。其中get,add和iterate方法比ArrayList稍慢一點。
          缺點:
           相對于ArrayList和LinkedList占比較多的內存空間
           線程不安全(需通過Collections.synchronizedList方法設置)

    • Map
      • ConcurrentHashMap
        • 優點:
           基于二叉數  提供比較快速的get, add,iterate方法。默認大小的16.
           它是線程安全
          缺點:
           如果大小超過設定的大小時,效率會非常低。它會重新申請內存空間(原來空間的兩倍),同時把原來的值復制到新內存空間上。

    http://m.tkk7.com/xmatthew/archive/2008/10/25/236581.html

    posted on 2009-12-23 11:15 oxidy 閱讀(249) 評論(0)  編輯  收藏 所屬分類: Java


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 免费人成年激情视频在线观看| 美女被爆羞羞网站免费| 亚洲伊人tv综合网色| 亚洲免费观看视频| 亚洲中久无码永久在线观看同| 国产精品亚洲综合一区| 亚洲国产午夜中文字幕精品黄网站| 五月天婷亚洲天综合网精品偷| 啊v在线免费观看| 亚洲日韩中文在线精品第一| 国产精品亚洲mnbav网站 | 日本免费一本天堂在线| 永久免费av无码网站大全| 国产日产成人免费视频在线观看| 日韩精品电影一区亚洲| 亚洲精品无码99在线观看| 亚洲人成色77777| 亚洲大片在线观看| 亚洲乱码一二三四区麻豆| 国产亚洲sss在线播放| 亚洲AV成人精品一区二区三区| 精品在线观看免费| 和老外3p爽粗大免费视频| 久久久国产精品福利免费| 3d成人免费动漫在线观看| 国产成在线观看免费视频| 日韩中文字幕在线免费观看| 大胆亚洲人体视频| 亚洲AV永久精品爱情岛论坛| 亚洲国产成人超福利久久精品| 亚洲综合小说另类图片动图 | 亚洲精品福利你懂| 国产AV日韩A∨亚洲AV电影| 最近免费中文字幕中文高清| **毛片免费观看久久精品| 免费无码不卡视频在线观看| 亚洲综合色区在线观看| 日韩精品亚洲人成在线观看| 亚洲精品国产综合久久久久紧 | 亚洲成在人线电影天堂色| 亚洲hairy多毛pics大全|