Code@Oxidy

          導航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          文章分類(29)

          隨筆檔案(7)

          文章檔案(18)

          相冊

          統計

          積分與排名

          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://www.aygfsteel.com/xmatthew/archive/2008/10/25/236581.html

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


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


          網站導航:
           
          主站蜘蛛池模板: 且末县| 扎赉特旗| 铜陵市| 东丽区| 奎屯市| 临猗县| 南澳县| 玉门市| 东光县| 壶关县| 天气| 娱乐| 桦川县| 阿勒泰市| 义乌市| 漳浦县| 闸北区| 蒲城县| 鹤山市| 梅河口市| 历史| 枣庄市| 岗巴县| 金溪县| 景谷| 古田县| 锦屏县| 宝山区| 邵阳市| 桃园县| 邵武市| 达州市| 绥德县| 邢台市| 淮北市| 五常市| 巴林左旗| 会昌县| 延寿县| 津南区| 甘德县|