所以我希望能够通过比较CustomObject中的值,即通过object.getSomeValue()进行比较,将此地图排序为TreeMap或LinkedHashmap。
因此具有最高值的对象显然将首先出现在LinkedHashmap
中答案 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());
}