Re: [問題] HashMap的問題

看板java作者 (骨頭)時間16年前 (2007/11/20 16:26), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《kians (臨兵鬥者皆陣列在前)》之銘言: : 之前提到的pageRank演算法終於完成啦 可喜可賀XD : 想請問一下各位大大,HashMap內的值要如何按照key或是value來對整個map做排序呢? : 我是想對value做排序啦,不知道有方可以排序嘛? : 我只知道可以取出hashmap的value值(型態為Set),然後用collections.sort來排序 : 不過這樣就沒辦法符合我要的結果了(只有value值而已) : 先謝謝各位大大了 與其要寫HashMap然後再另外對EntrySet寫Comparator做排序 倒不如用 TreeMap (差別只有implements SortedMap) 搭配Comparator 效能上會好一點(特別是取多次的時候每次取都要sort一次 ,蠻糟的) TreeMap(Comparator<? super K> c) Constructs a new, empty map, sorted according to the given comparator. 至於Comparator的簡單介紹,他是用來比較兩個元素的大小的, 這樣當排序的時候,他才知道 2要比1大 ,所以小到大排序時 1要在2前面, 我們可以知道大部分排序其實都是兩個兩個比較的結果, 所以定義"比較"的規則就可以決定排序的大小, 而這個規則如果物件本身是Comparable就內建了CompareTo。 如果我們不滿意這規則,或者是要比較的物件沒有實做Comparable介面, 就可以寫一個自訂的Comparator,讓他自己去比較。  ̄▽ ̄ 囉唆了一點,現在網路慢到一個極限,我就不修言詞了, 總之 去查API 吧,這些API裡面都有。 關鍵字是HashMap /TreeMap/Comparable /Comparator http://java.sun.com/j2se/1.5.0/docs/api/index.html --  ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮         ◥███████████◣       ╰┼╯=│=│         ◥██████───────    *. ╯  ╯ ╯ の 物 語 .*  ◥███████──────◣ ~ ◢◣             ◢◣  ◥██████───────◤   ◥◤  空白的世界.翼 ◥◤  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂telnet://tony1223.no-ip.info -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.59.247

11/25 15:04, , 1F
謝謝你喔
11/25 15:04, 1F
文章代碼(AID): #17Gff3UR (java)
討論串 (同標題文章)
文章代碼(AID): #17Gff3UR (java)