我对Java比较陌生,经常发现我需要对值排序Map<Key, Value>
。
由于值不是唯一的,因此我发现自己将keySet
转换为array
,并使用自定义比较器对数组进行排序,该自定义比较器对与键关联的值进行排序。
有更容易的方法吗?
最佳答案
这是通用的版本:
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/55816451/