我需要对值进行 Map<Key, Value>
排序。
由于这些值不是唯一的,我发现自己将 keySet
转换为 array
,并使用按值排序的自定义比较器通过数组排序对该数组进行排序与 key 关联。
有没有更简单的方法?
最佳答案
这是一个通用友好的版本:
public class MapUtil {
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) {
List<Entry<K, V>> list = new ArrayList<>(map.entrySet());
list.sort(Entry.comparingByValue());
Map<K, V> result = new LinkedHashMap<>();
for (Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}
关于java - 按值对 Map<Key, Value> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59698082/