我有JSONObject
和Integer
的地图。我想使用它的值以递增的顺序对其进行排序,这是我到目前为止所做的:
Map<JSONObject, Integer> unsortedMap = new HashMap<>();
unsortedMap.put(jsonObject2.getJSONObject(key),key1);
答案 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;
}