作者:seaknkoo_776 | 来源:互联网 | 2022-12-10 09:43
我有一个HashMap
充满了几个条目.我想将HashMap的键保存到一个ArrayList
,但是根据HashMap的相应值对这个ArrayList进行排序.
有没有比排序HashMap更好的解决方案,然后使用
ArrayList sortedKeys = new ArrayList(myHashmap.keySet());
顺便说一下,我不必首先使用HashMap,但是值设置了顺序,我不想要交换键和值,因为float可能会改变几次.
1> Ousmane D...:
您可以使用流API:
List sortedKeys = myMap.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.map(Map.Entry::getKey)
.collect(Collectors.toCollection(ArrayList::new));
2> Sweeper..:
如果我理解正确,您可以先从键创建数组列表,然后排序:
ArrayList list = new ArrayList<>(myHashMap.keySet());
list.sort(Comparator.comparing(myHashMap::get));