簡體   English   中英

將HashMap的鍵保存到ArrayList中,並按Java中的HashMaps值排序

[英]Save keys of HashMap into ArrayList sorted by the HashMaps values in Java

我有一個HashMap<String, Float> ,它填充了幾個條目。 我想將HashMap的鍵保存到ArrayList<String> ,但是根據HashMap的相應值對此ArrayList進行排序。

有沒有比排序HashMap更好的解決方案,然后使用

ArrayList<String> sortedKeys = new ArrayList<String>(myHashmap.keySet());

順便說一下,我不必首先使用HashMap,但是值設置了順序,我不想要交換鍵和值,因為float可能會改變幾次。

您可以使用流API:

List<String> sortedKeys = myMap.entrySet()
                       .stream()
                       .sorted(Map.Entry.comparingByValue())
                       .map(Map.Entry::getKey)
                       .collect(Collectors.toCollection(ArrayList::new));

如果我理解正確,您可以先從鍵創建數組列表,然后排序:

ArrayList<String> list = new ArrayList<>(myHashMap.keySet());
list.sort(Comparator.comparing(myHashMap::get));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM