如果一个map的key和value都是String类型,value是保留两位数的百分比,如何将其中的三个键值对进行排序
时间: 2023-03-30 20:02:47 浏览: 76
可以使用 TreeMap 来对键值对进行排序,代码如下:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("key1", "23.45%");
map.put("key2", "12.34%");
map.put("key3", "56.78%");
Map<String, String> sortedMap = new TreeMap<>(new ValueComparator(map));
sortedMap.putAll(map);
for (Map.Entry<String, String> entry : sortedMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
class ValueComparator implements Comparator<String> {
Map<String, String> map;
public ValueComparator(Map<String, String> map) {
this.map = map;
}
@Override
public int compare(String s1, String s2) {
String v1 = map.get(s1);
String v2 = map.get(s2);
double d1 = Double.parseDouble(v1.substring(, v1.length() - 1));
double d2 = Double.parseDouble(v2.substring(, v2.length() - 1));
return Double.compare(d1, d2);
}
}
```
输出结果为:
```
key2: 12.34%
key1: 23.45%
key3: 56.78%
```