如何排序JSONObject的地图

时间:2019-01-14 11:54:41

标签: java android

我有JSONObjectInteger的地图。我想使用它的值以递增的顺序对其进行排序,这是我到目前为止所做的:

Map<JSONObject, Integer> unsortedMap = new HashMap<>();

unsortedMap.put(jsonObject2.getJSONObject(key),key1);

2 个答案:

答案 0 :(得分:0)

确定要在哈希图中使用对象作为键吗?通常,对键使用不可变的值。 JSONObject的任何元素中的任何细微变化都会更改哈希值,并且您将无法从地图中获取信息。

地图的整数是多少?

仅是一个建议,但您可能想查看Java API进行收集,看看是否有更适合您需要的东西。 Java Collection API

过去,我想要一个没有重复的排序列表。我必须先写入TreeMap,然后写入SortedSet以获得所需的结果。代码效率不高,但是我无法通过其他任何方式实现。

答案 1 :(得分:0)

不确定这是否是最佳选择,但可能会有所帮助:

public static Map<String, Integer> SortByKey(Map<String, Integer> map) 
    { 
        ArrayList<String> sortedKeys = 
                    new ArrayList<String>(map.keySet()); 

        Collections.sort(sortedKeys);  

        Map<String, Integer> sortedMap = new HashMap<>();

        for (String x : sortedKeys)  
            sortedMap.put(map.get(x), Integer.parseInt(x));

        return sortedMap;
    }