Java面試如何對(duì)HashMap按鍵值排序

Java面試如何對(duì)HashMap按鍵值排序

長(zhǎng)沙一度軟件培訓(xùn)      2022-04-26 13:49:01     7

Java面試如何對(duì)HashMap按鍵值排序,1.HashMap存儲(chǔ)每對(duì)鍵和值作為一個(gè)EntryK,V對(duì)象。例如,給出一個(gè)HashMap,MapString,IntegeraMap=newHashMapString,Integer();鍵

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

1.HashMap存儲(chǔ)每對(duì)鍵和值作為一個(gè)Entry<K,V>對(duì)象。例如,給出一個(gè)HashMap,

Map<String,Integer>aMap=newHashMap<String,Integer>();

鍵的每次插入,都會(huì)有值對(duì)應(yīng)到散列映射上,生成一個(gè)Entry<K,V>對(duì)象。通過使用這個(gè)Entry<K,V>對(duì)象,我們可以根據(jù)值來排序HashMap。

2.創(chuàng)建一個(gè)簡(jiǎn)單的HashMap,并插入一些鍵和值。

ap<String,Integer>aMap=newHashMap<String,Integer>();//addingkeysandvaluesaMap.put("Five",5);aMap.put("Seven",7);aMap.put("Eight",8);aMap.put("One",1);aMap.put("Two",2);aMap.put("Three",3);

3.從HashMap恢復(fù)entry集合,如下所示。

Set<Entry<String,Integer>>mapEntries=aMap.entrySet();

4.從上述mapEntries創(chuàng)建linkedList。我們將排序這個(gè)鏈表來解決順序問題。我們之所以要使用鏈表來實(shí)現(xiàn)這個(gè)目的,是因?yàn)樵阪湵碇胁迦朐乇葦?shù)組列表更快。

 List<Entry<String,Integer>>aList=newlinkedList<Entry<String,Integer>>(mapEntries);

5.通過傳遞鏈表和自定義比較器來使用Collections.sort()方法排序鏈表。

Collections.sort(aList,newComparator<Entry<String,Integer>>(){@Overridepublicintcompare(Entry<String,Integer>ele1,Entry<String,Integer>ele2){returnele1.getValue().compareTo(ele2.getValue());}});

6.使用自定義比較器,基于entry的值(Entry.getValue()),來排序鏈表。

ele1.getValue().compareTo(ele2.getValue())——比較這兩個(gè)值,返回0——如果這兩個(gè)值完全相同的話;返回1——如果第一個(gè)值大于第二個(gè)值;返回-1——如果第一個(gè)值小于第二個(gè)值。

7.Collections.sort()是一個(gè)內(nèi)置方法,僅排序值的列表。它在Collections類中重載。這兩種個(gè)方法是

publicstatic<TextendsComparable<?superT>>voidsort(List<T>list)publicstatic<T>voidsort(List<T>list,Comparator<?superT>c)

   

以上就是長(zhǎng)沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java面試如何對(duì)HashMap按鍵值排序”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。