Java排序<uuid,customobject =“”>的地图

时间:2018-03-07 09:35:36

标签: java

所以我希望能够通过比较CustomObject中的值,即通过object.getSomeValue()进行比较,将此地图排序为TreeMap或LinkedHashmap。

因此具有最高值的对象显然将首先出现在LinkedHashmap

1 个答案:

答案 0 :(得分:0)

你不能以合理的方式做到这一点,但如果你真的想要它,你可以做的是:

List<EntrySet<UUID, CustomObject>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, (e1, e2) -> /*comparision here*/);
Map<UUID, CustomObject> sortedMap = new LinkedHashMap<>();
for(Entry<UUID, CustomObject> entry: list){
   sortedMap.put(entry.getKey(), entry.getValue());
}