【发布时间】:2017-09-26 10:21:46
【问题描述】:
我有一个List<Map<String, String>>。地图的一个特定值是带有小数的数字条目。我希望根据地图的特定值按降序对列表进行排序。
例如:
List<Map<String, String>> foo= new ArrayList<Map<String, String>>();
Map<String, String> bar1 = new HashMap<>();
Map<String, String> bar2 = new HashMap<>();
Map<String, String> bar3 = new HashMap<>();
bar1.put("name", "abc");
bar1.put("score", "72.5");
bar1.put("sex", "male");
foo.add(bar1);
bar2.put("name", "pqr");
bar2.put("score", "98.7");
bar2.put("sex", "female");
foo.add(bar2);
bar3.put("name", "xyz");
bar3.put("score", "100.0");
bar3.put("sex", "male");
foo.add(bar3);
.
.
.
.
等等
我想按降序对List<Map<String, String>> 进行排序,使得包含 100.0 分数的地图位于顶部。
我试过了
Collections.sort( list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
return (o1.getValue()).compareTo(o2.getValue());
}
});
但这里的“V”是一个字符串,而我需要将它排序为浮点数。 任何帮助将不胜感激。
【问题讨论】:
-
如果无法将值解析为浮点数,这应该如何工作?
-
@Flown 我可能错了,但我已经尝试过该解决方案。我的问题是字符串的类型转换为浮动或清晰,根据该浮动值对具有一个特定浮动值的 map
进行排序。
标签: java sorting collections maps