Re: [問題] HashMap的問題
※ 引述《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
討論串 (同標題文章)