Java Sorting Map of
本问题已经有最佳答案,请猛点这里访问。
因此,我希望能够通过比较CustomObject中的值,即通过object.getSomeValue()进行比较,将此映射排序为TreeMap或LinkedHashmap。
因此,具有最高值的对象显然将首先出现在LinkedHashmap中
你不能以合理的方式做到这一点,但如果你真的想要它,你可以做的是:
1 2 3 4 5 6 | 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()); } |