[英]How to sort data of ArrayList of hashmap<String , String> on The Basis of Date
i have sorted the data on the basis of name. 我已根据名称对数据进行了排序。 but when i am going to sort the data of arraylist of hash map on the basis of "date", i have no idea how to solve it. 但是当我要根据“日期”对哈希映射的arraylist数据进行排序时,我不知道如何解决它。 my Method for sort by name is given below. 我按名称排序的方法如下。
protected ArrayList<HashMap<String, String>> setListOrderByName(ArrayList<HashMap<String, String>> menuItems2) {
Collections.sort(menuItems2, new Comparator<HashMap<String, String>>() {
public int compare(HashMap<String, String> mapping1,
HashMap<String, String> mapping2) {
return mapping1.get(KEY_NAME).compareTo(mapping2.get(KEY_NAME));
}
});
return menuItems2;
}
i have receive the data from xml parsing. 我收到了xml解析的数据。 where we get name, date ,time and etc in string format. 我们以字符串格式获取名称,日期,时间等。
convert string to date and then compare it 将字符串转换为日期然后进行比较
protected ArrayList<HashMap<String, String>>
setListOrderByName(ArrayList<HashMap<String, String>> menuItems2) {
Collections.sort(menuItems2, new Comparator<HashMap<String, String>>() {
DateFormat f = new SimpleDateFormat("dd/MM/yyyy '@'hh:mm a");//do determ
@Override
public int compare(HashMap<String, String> mapping1,
HashMap<String, String> mapping2) {
try {
return f.parse(mapping1.get(KEY_NAME)).compareTo(f.parse(mapping2.get(KEY_NAME)));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
});
return menuItem2;
}
Here example for sort HashMap based on string date 这里是基于字符串日期排序HashMap的示例
protected ArrayList<HashMap<String, String>> setListOrderByName(ArrayList<HashMap<String, String>> menuItems2) {
Collections.sort(menuItems2, new Comparator<HashMap<String, String>>() {
public int compare(HashMap<String, String> mapping1,
HashMap<String, String> mapping2) {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
Date date1 = formatter.parse(mapping1.get(DATE));
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
Date date2 = formatter.parse(mapping2.get(DATE));
if(date1.after(date2)){
return mapping1.get(DATE);
}else{
return mapping2.get(DATE);
}
}
});
return menuItems2;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.