После 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