【发布时间】:2018-12-10 23:45:27
【问题描述】:
我的应用程序包含一个 HashMap 的 ArrayList。获取的数据按距离排序。为了减少查询,我想使用 ArrayList。我搜索并只找到了建议创建自己的比较器的方法。有没有更简单的方法来做到这一点?那么就像按值而不是按距离重新排列 HashMap 并将它们保存到 HashMap 的第二个 ArrayList 中?
我的代码:
public class MainActivity extends AppCompatActivity {
ArrayList<HashMap<String, String>> contactList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contactList = new ArrayList<>();
new GetContacts().execute();
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
String jsonStr = sh.makeServiceCall(url);
Log.e(TAG, "Response from url: " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray contacts = jsonObj.getJSONArray("stores");
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String id = c.getString("id");
String dist = c.getString("dist");
String value = c.getString("value");
HashMap<String, String> contact = new HashMap<>();
contact.put("id", id);
contact.put("dist", dist);
contact.put("value", value);
contactList.add(contact);
}
}
}
}
}
}
【问题讨论】:
标签: java android sorting arraylist hashmap