import java.util.*;
public class MapSortingExample {
public static void main(String[] args) {
// 创建一个HashMap并添加一些键值对
Map<String, Integer> map = new HashMap<>();
map.put("apple", 3);
map.put("banana", 1);
map.put("orange", 2);
// 按照键排序
System.out.println("按照键排序:");
Map<String, Integer> sortedByKeyMap = sortByKey(map);
sortedByKeyMap.forEach((key, value) -> System.out.println(key + ": " + value));
// 按照值排序
System.out.println("按照值排序:");
Map<String, Integer> sortedByValueMap = sortByValue(map);
sortedByValueMap.forEach((key, value) -> System.out.println(key + ": " + value));
}
// 按照键排序的方法
public static Map<String, Integer> sortByKey(Map<String, Integer> unsortMap) {
List<Map.Entry<String, Integer>> list = new ArrayList<>(unsortMap.entrySet());
list.sort(Map.Entry.comparingByKey());
Map<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
// 按照值排序的方法
public static Map<String, Integer> sortByValue(Map<String, Integer> unsortMap) {
List<Map.Entry<String, Integer>> list = new ArrayList<>(unsortMap.entrySet());
list.sort(Map.Entry.comparingByValue());
Map<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
}
创建和初始化Map:
HashMap创建了一个包含若干键值对的映射。按键排序:
sortByKey方法将Map转换为List,然后使用list.sort()方法按照键进行排序。LinkedHashMap中返回,以保持插入顺序。按值排序:
sortByValue方法与按键排序类似,但排序依据是Map.Entry的值。LinkedHashMap中返回。输出结果:
forEach遍历排序后的Map,并打印出键值对。这个示例展示了如何使用Java对Map进行按键和按值排序。
下一篇:java map初始化
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站