Hashmap排序的幾個方法

2021-10-19 09:27:26 字數 1446 閱讀 2932

假設有這樣的類

**如下(示例):

class

student

public string tostring()

}

hashmap

map =

newhashmap

<

>()

; map.

put(

1003

,new

student

(1003

,"sam"))

;map.

put(

1005

,new

student

(1005

,"joseph"))

;map.

put(

1001

,new

student

(1001

,"kate"))

;map.

put(

1002

,new

student

(1002

,"miranda"))

;map.

put(

1004

,new

student

(1004

,"peter"))

;

要進行排序,使用的方法有:

1) 使用treemap,這個方法最簡單了:

treemapsortedmap = new treemap<>(map);

把map傳進去treemap中就可以了。

2) 如果僅僅是排序map中的key和value,則可以:

list

mapkeys =

newarraylist

<

>

(map.

keyset()

);collections.

sort

(mapkeys);

list

mapvalues =

newarraylist

<

>

(map.

values()

); collections.

sort

(mapvalues)

;

但前提是必須pojo實現comparable介面

public

class

student

implements

comparable

}

3)如果不希望排序的map中有key,的值的重複,可以用sortedset

sortedset mapkeys = new treeset<>(map.keyset());

這個時候要pojo重寫hashcode和equals方法:

HashMap的排序方法

public static map sorthashmap map map collections.sort list iterator item2 list.iterator while item2.hasnext return sortedmap map.keyset此方法獲得到的是hashma...

HashMap的幾個要點

1 資料儲存的底層資料結構 2 擴容機制 與rehash 3 同步問題 hashmap hashtable concurrenthashmap的區別與理解 1 hashmap底層是通過陣列 鍊錶的資料結構實現的。2 整體來看hashmap中所有資料都存於乙個陣列table中,陣列中的每個元素又是乙個...

幾個好用的排序方法?

感覺到編寫 過程中時常會用到排序,但是有些時候對於執行時間的要求會導致一些排序演算法沒有辦法使用 1.氣泡排序應該是最好理解也是比較簡單寫出來的方法 思路就是從第乙個元素開始,前乙個和後乙個比較大小 排序方式當然自己決定 之後換位置就好了。主要就是兩個迴圈,內層 j 迴圈就是從0開始一直比較直到 n...