java hashmap用法 java中需要排序的數(shù)據(jù),為什么都是用hashmap,而不是直接用sortmap?
java中需要排序的數(shù)據(jù),為什么都是用hashmap,而不是直接用sortmap?不同的應(yīng)用場(chǎng)景[treemap繼承自SortedMap]它用于保持鍵的順序,還包含許多排序方法。HashMap是無序的
java中需要排序的數(shù)據(jù),為什么都是用hashmap,而不是直接用sortmap?
不同的應(yīng)用場(chǎng)景
[treemap繼承自SortedMap]它用于保持鍵的順序,還包含許多排序方法。
HashMap是無序的,按集合的排序方法排序。
如何實(shí)現(xiàn)key,value有序的HashMap?
LinkedHashMap中有一個(gè)模擬的“雙向循環(huán)鏈表”,用于保存條目的插入順序。我也可以用這個(gè)方法保存插入時(shí)鍵和值的順序。它暫定名為orderedhashmap。主代碼是從LinkedHashMap復(fù)制的。它還維護(hù)兩個(gè)模擬的“雙向循環(huán)鏈表”:keyheader和valueheader,保持鍵或值從小到大的順序。當(dāng)一個(gè)元素被放入時(shí),除了將它存儲(chǔ)在hash bucket中之外,還應(yīng)該根據(jù)鍵的大小將它插入key header中,并根據(jù)值的順序?qū)⑺迦雟alue header中。如果您想輸出,您可以從這兩個(gè)“頭指針”向前或向后迭代,以獲得鍵或值的有序條目。(可以實(shí)現(xiàn)正負(fù)順序的鍵和值的輸出,只比較數(shù)值型,如果不是數(shù)值型,可以按HashMap正常處理)。下面是測(cè)試結(jié)果:值按相反順序輸出java代碼orderhashmap