给map排序 java
时间: 2023-10-12 10:14:31 浏览: 184
Java Map排序
在 Java 中,如果要对 Map 进行排序,可以使用 TreeMap 类。TreeMap 是一种基于红黑树的实现,可以对键进行排序。以下是对 Map 进行排序的示例代码:
```
import java.util.Map;
import java.util.TreeMap;
public class MapSort {
public static void main(String[] args) {
// 创建一个 Map 对象
Map<String, Integer> map = new TreeMap<>();
// 添加元素
map.put("apple", 10);
map.put("banana", 5);
map.put("orange", 8);
map.put("pear", 3);
// 对 Map 进行排序
Map<String, Integer> sortedMap = new TreeMap<>(new MapComparator(map));
sortedMap.putAll(map);
// 打印排序后的 Map
System.out.println(sortedMap);
}
}
class MapComparator implements java.util.Comparator<String> {
private Map<String, Integer> map;
public MapComparator(Map<String, Integer> map) {
this.map = map;
}
@Override
public int compare(String o1, String o2) {
// 根据值进行排序,如果值相同,则按照键进行排序
int result = map.get(o1).compareTo(map.get(o2));
return result == 0 ? o1.compareTo(o2) : result;
}
}
```
在上面的代码中,我们创建了一个 Map 对象,并添加了一些元素。然后创建了一个 MapComparator 类来进行排序。MapComparator 类实现了 Comparator 接口,重写了 compare 方法,根据值进行排序,如果值相同,则按照键进行排序。最后,我们使用 TreeMap 类创建了一个新的 Map 对象,并传入 MapComparator 对象来进行排序,最终打印排序后的 Map。
阅读全文