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

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

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

    于吉吉的技術博客

    建造高性能門戶網

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      65 隨筆 :: 6 文章 :: 149 評論 :: 0 Trackbacks

    java數據結構

    posted @ 2011-06-15 15:07 陳于喆 閱讀(900) | 評論 (0)  編輯

         摘要: 一直以來似乎都有一個錯覺,認為map跟其他的集合類一樣繼承自Collection,其實不然,Map和Collection在結構層次上是沒有任何關系的,通過查看源碼可以發現map所有操作都是基于key-value對,而不是單獨的元素。

    下面以HashMap為例子,深入對Map的實現機制進行了解,在這個過程中,請打開jdk源碼。

    Hash算法

    HashMap使用Hash算法,所以在解剖HashMap之間,需要先簡單的了解Hash算法,Hash算法一般也成為散列算法,通過散列算法將任意的值轉化成固定的長度輸出,該輸出就是散列值,這是一種壓縮映射,也就是,散列值的空間遠遠小于輸入的值空間。
    簡單的說,hash算法的意義在于提供了一種快速存取數據的方法,它用一種算法建立鍵值與真實值之間的對應關系,(每一個真實值只能有一個鍵值,但是一個鍵值可以對應多個真實值),這樣可以快速在數組等里面存取數據。

    下面我們建立一個HashMap,然后往里面放入12對key-value,這個HashMap的默認數組長度為16,我們的key  閱讀全文
    posted @ 2011-02-15 19:18 陳于喆 閱讀(10182) | 評論 (6)  編輯

         摘要: List在數據結構中表現為是線性表的方式,其元素以線性方式存儲,集合中允許存放重復的對象,List接口主要的實現類有
    ArrayList
    ArrayList 其實就是一組長度可變的數組,當實例化了一個ArrayList,該數據也被實例化了,當向集合中添加對象時,數組的大小也隨著改變,這樣它所帶來的有優點是快速的隨機訪問,即使訪問每個元素所帶來的性能問題也是很小的,但缺點就是想其中添加或刪除對象速度慢,當你創建的數組是不確定其容量,所以當我們改變這個數組時就必須在內存中做很多的處理,如你想要數組中任意兩個元素中間添加對象,那么在內存中數組要移動所有后面的對象。

    LinkedList
    LinkedList 是通過節點的連接實現鏈表的數據結構,向linkedList中插入或刪除元素的速度是特別快,而隨機訪問的速度相對較慢,這個是由于鏈表本身的性質造成的,在鏈表中,每個節點都包含了前一個節點的引用,后一個節點的引用和節點存儲值,當一個新節點插入式,只需要修改其中相關的前后關系節點引用即可,刪除節點也是一樣。操作對象只需要改變節點的鏈接,新節點可以存放在  閱讀全文
    posted @ 2011-01-16 17:36 陳于喆 閱讀(11420) | 評論 (1)  編輯

         摘要: 我們都知道Set是一種最簡單的集合,對象的排序無特定的規則,集合里面存放的是對象的引用,所以沒有重復的對象,在上面的代碼中,程序創建了a、b、 c、d、e五個變量,其中a和c,b和e所引用的字符串是一致的,然后向set添加了這5個變量。打印出來的size()只有3個,實際上向集合加入的只有3個對象,在執行Set的add()方法時已經進行了判斷這個對象是否存在于集合,如果對象已經存在則不繼續執行。
    Set的接口有兩個實現類,HashSet和TreeSet,HashSet是按照哈希算法來進行存取集合中的對象,存取速度比較快,TreeSet類顯示了SortedSet接口,具有排序功能

    HashSet
    HashSet是按照哈希算法來存取集合中的對象,具有很好的存取和查找性能,當向集合中加入一個對象時,HashSet會調用對象的hashCode()方法來獲取哈希碼,然后根據這個哈希嗎來計算對象在集合中的存放位置。
    在Object類中定義了hashCode()和equal(),equal()是按照內存地址比較對象是否相同,如果 object1.equal(  閱讀全文
    posted @ 2011-01-06 18:07 陳于喆 閱讀(8617) | 評論 (0)  編輯

    主站蜘蛛池模板: 久久亚洲AV成人无码软件| 亚洲国产精品一区二区久久hs| 久久亚洲中文字幕精品有坂深雪| 一级毛片a免费播放王色| 免费看国产精品麻豆| 老湿机一区午夜精品免费福利| 国产色婷婷精品免费视频| 亚洲精品国产suv一区88| 永久中文字幕免费视频网站| 亚洲欧美成aⅴ人在线观看| 在线免费观看中文字幕| 日韩成人精品日本亚洲| 亚洲熟妇无码AV| 国产一区二区三区免费在线观看| 黄色免费网址大全| 国产亚洲精品拍拍拍拍拍| 精品在线免费观看| 在线观看亚洲人成网站| 无码人妻久久一区二区三区免费丨| 国产成人亚洲精品| 国产精品无码免费视频二三区| 免费人成又黄又爽的视频在线电影| 亚洲国产精品专区在线观看| 国产视频精品免费视频| 亚洲天天在线日亚洲洲精| 国产精品美女午夜爽爽爽免费| 精品亚洲av无码一区二区柚蜜| 亚洲成A人片77777国产| 两个人看的www高清免费观看| 亚洲制服中文字幕第一区| 一二三四在线观看免费高清中文在线观看| 亚洲色最新高清av网站| 亚洲成A人片77777国产| 一级毛片免费观看不卡的| 亚洲欧美日韩国产精品一区| 怡红院亚洲怡红院首页| 亚欧免费视频一区二区三区| 亚洲国产AV一区二区三区四区| 久久亚洲精品无码观看不卡| 免费成人福利视频| 一级黄色毛片免费看|