这里我有一个查询,其中我根据条件获取名称和值,我在列表中存储empid和empname的值
这是一段代码:
List_empid = new ArrayList (); List _empname = new ArrayList ();
在这里,我从数据库中获取值:
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++) { HashMapmap = new HashMap (); 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但不是按照排序的方式我使用谷歌的各种例子仍然没有找到.如果这个解决了将不胜感激,谢谢.
您可以使用以排序方式存储数据的树映射.其次,您可以在地图中将Id(key)放在名称中.
如果你仍然想以相同的方式使用Collections.sort()
,那么你可以用来对列表进行排序.