这里我有一个查询,其中我根据条件获取名称和值,我在列表中存储empid和empname的值
以下是一段代码:
List<String> _empid = new ArrayList<String>();
List<String> _empname = new ArrayList<String>();
我在这里从数据库中获取值:
while (cur1.moveToNext()) {
if (cur1.getString(cur1.getColumnIndex("name"))
.equalsIgnoreCase("DIS_FIELD_COLLECTION_EXECUTIVE")) {
_empid.add(cur1.getString(cur1.getColumnIndex("value")));
} else if (cur1.getString(cur1.getColumnIndex("name"))
.equalsIgnoreCase("FIELD_EXECUTIVE_NAME")) {
_empname.add(cur1.getString(cur1.getColumnIndex("value")));
}
}
for (int i = 0; i < _empid.size(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", _empid.get(i));
map.put("name", _empname.get(i));
Log.e("forloop", _empid.get(i));
Log.e("forloop", _empname.get(i));
emp.add(map);
adp_emp = new Listadapter_emp(emp, Tracker_filter_Activity.this);
lst_employee.setAdapter(adp_emp);
}
这里输出就像这样
01-17 12:16:49.696 29369-29369/com.wp.focus E/forloop: 5
01-17 12:16:49.696 29369-29369/com.wp.focus E/forloop: AZAD NAGAR-TAN001
01-17 12:16:49.697 29369-29369/com.wp.focus E/forloop: 3
01-17 12:16:49.697 29369-29369/com.wp.focus E/forloop: PURVANG PANDYA-FPP022
01-17 12:16:49.698 29369-29369/com.wp.focus E/forloop: 2
01-17 12:16:49.698 29369-29369/com.wp.focus E/forloop: TWESTT TESST-TTT001
01-17 12:16:49.699 29369-29369/com.wp.focus E/forloop: 9
01-17 12:16:49.699 29369-29369/com.wp.focus E/forloop: SDSDHH XDGHGSDFHGSD-TSX001
01-17 12:16:49.699 29369-29369/com.wp.focus E/forloop: 8
01-17 12:16:49.699 29369-29369/com.wp.focus E/forloop: TEST TEST-TTT002
01-17 12:16:49.699 29369-29369/com.wp.focus E/forloop: 6
01-17 12:16:49.699 29369-29369/com.wp.focus E/forloop: AZADALAM NAGAR-TAN002
必需的输出名称应按字母顺序排序,id应按名称排列,即 必需的输出如:
AZAD NAGAR-TAN001 5
AZADALAM NAGAR-TAN002 6
PURVANG PANDYA-FPP022 3
SDSDHH XDGHGSDFHGSD-TSX001 9
TEST TEST-TTT002 8
TWESTT TESST-TTT001 2
因此,ID应该根据排序名称进行调整,我得到了名称和ID,但没有按照排序方式我使用谷歌的各种示例仍然没有找到。如果这个问题得到解决将不胜感激。谢谢。
答案 0 :(得分:6)
您可以使用树形图以有序的方式存储数据。 其次,您可以在地图中将名称与Id(密钥)放在一起。
如果您仍想以相同的方式使用,则可以使用Collections.sort()
对列表进行排序。