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 中文站