java中map根据value排序
在Java中,Map是一种非常常用的数据结构,它通过键值对的形式存储数据,Map本身是无序的,但是在实际应用中,我们有时需要根据Map的值来进行排序,本文将介绍如何使用Java中的Map来实现根据Value排序。
Map转TreeMap
在Java中,可以使用TreeMap来根据HashMap的值进行排序。
import java.util.*;
public class SortHashMapByValue {
public static void main(String[] args) {
// 创建一个HashMap
HashMap<String, Integer> map = new HashMap<>();
map.put("A", 10);
map.put("B", 5);
map.put("C", 20);
map.put("D", 15);
// 使用TreeMap对HashMap的值进行排序
Map<String, Integer> sortedMap = new TreeMap<>(
new Comparator<String>() {
@Override
public int compare(String k1, String k2) {
return map.get(k1) - map.get(k2);
}
}
);
sortedMap.putAll(map);
// 打印排序后的HashMap
for (Map.Entry<String, Integer> entry : sortedMap.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
Map转换为List
将Map中的键值对转换为List,然后通过对List进行排序来得到排序后的结果。
具体代码如下
package org.example;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class hashmap_list {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("A",10);
map.put("B",5);
map.put("C",20);
map.put("D",15);
//Map中的键值对转换为List,并通过对List进行排序来得到排序后的结果
List<Map.Entry<String, Integer>> sortedList =
map.entrySet().stream().sorted(Map.Entry.comparingByValue()).collect(Collectors.toList());
for (Map.Entry<String, Integer> stringIntegerEntry : sortedList) {
System.out.println(stringIntegerEntry.getKey()+","+stringIntegerEntry.getValue());
}//对value排序
System.out.println("=======================");
List<Map.Entry<String, Integer>> sortedList1 =
map.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toList());
for (Map.Entry<String, Integer> stringIntegerEntry : sortedList1) {
System.out.println(stringIntegerEntry.getKey()+","+stringIntegerEntry.getValue());
}//对key排序
}
}
标签:map,Java,hashmap,Map,--,List,put,排序,HashMap
From: https://blog.csdn.net/qq_52260669/article/details/139332045