【问题标题】:How to sum json value after sorted in java android?在java android中排序后如何对json值求和?
【发布时间】:2020-05-11 21:34:06
【问题描述】:

如果城市具有相同的数组值,则以下 Json 需要按城市分组以获取数组和计数。之后我想对最大的 2 个进行排序,然后将其余的加在一起,但是该怎么做呢?

{
"data": [
        {
            "ID": 47,
            "city": "Jakarta"
        },
        {
            "ID": 48,
            "city": "Bogor"
        },
        {
           "ID": 49,
            "city": "Bogor"
        },
        {
            "ID": 50,
            "city": "Jakarta"
        },
        {
            "ID": 51,
            "city": "Jakarta"
        },
        {
            "ID": 52,
            "city": "Bali"
        },
        {
            "ID": 50,
            "city": "Lampung"
        }
    ]
}

到目前为止我已经尝试过按城市分组来获取数组

try {
        JSONObject jsonObject = new JSONObject(result);
        HashMap<String,Integer> hashMap = new HashMap<>();
        for (int i=0;i<jsonObject.getJSONArray("data").length();i++){
            JSONObject innerJsonObject = jsonObject.getJSONArray("data").getJSONObject(i);
            String key = innerJsonObject.getString("city");
            if(hashMap.containsKey(key)){
                int count = hashMap.get(key)+1;
                hashMap.put(key,count);
            }else {
                hashMap.put(key,1);
            }
        }
        Log.e("Hashmap---",hashMap.toString());
    } catch (JSONException e) {
        e.printStackTrace();
    }

结果是:

  • 茂物 = 2
  • 雅加达 = 3
  • 巴厘岛 = 1
  • 楠榜 = 1

预期结果是:

  • 雅加达 = 3

  • 茂物 = 2

  • 另一个城市 = 2

【问题讨论】:

标签: java android arrays json sorting


【解决方案1】:

尝试像这样在for循环之后将该HashMap添加到TreeMap中

     Map<String, Integer> reverseSortedMap = new TreeMap<String, 
        Integer>(Collections.reverseOrder());

      reverseSortedMap.putAll(hashMap);//your hashMap with count of city

      System.out.println("Reverse Sorted Map   : " + reverseSortedMap);

【讨论】:

    猜你喜欢
    • 2020-07-13
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2012-10-16
    相关资源
    最近更新 更多