原始数据如下所示:
String data = "{ \"a\":1, \"b\":3 , \"c\":-1 }";
我的第一步是将其转换为 HashMap:
Gson gson = new Gson();
HashMap<String, Double> map = gson.fromJson(data, HashMap.class);
然后按它们的值对键进行排序:
public static List<String> sortHashMap(final HashMap<String, Double> map) {
Set<String> set = map.keySet();
List<String> keys = new ArrayList<String>(set);
Collections.sort(keys, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
if (map.get(s1) < map.get(s2)) {
return 1;
}
return 0;
}
});
return keys;
}
最后,得到前 N 个键:
keys.subList(0, N);
我终于得到了结果,但我认为这不是一种优雅的方式。
所以我想知道,有什么方便的方法吗?