如何使用 String "Date" 成员对自定义对象的 ListArray 进行排序
How to sort a ListArray of custom object with a String "Date" member
我有一个 "Planning" 的 ListArray。
ArrayList<Planning> tmpListPlanning
这是我的 "Planning Class":
public class Planning {
private String start;
private String title;
}
问题是,我 "tmpListPlanning" 收到的元素乱七八糟 。
我想按照日期对它们进行排序。
日期格式如下:
"2013-12-10 14:00:00"
我在 Whosebug 上看到了这个,但我无法让它在自定义对象列表上工作:
Collections.sort(datestring, new Comparator<String>() {
DateFormat f = new SimpleDateFormat("dd/MM/yyyy '@'hh:mm a");
@Override
public int compare(String o1, String o2) {
try {
return f.parse(o1).compareTo(f.parse(o2));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
});
你能帮帮我吗?
谢谢。
编辑 1 :
Collections.sort(tmpListPlanning, new Comparator<Planning>() {
DateFormat f = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
@Override
public int compare(Planningo1, Planning o2) {
String date1 = o1.getStart();
String date2 = o2.getStart();
try {
Log.e("Debug", "RETURN");
return f.parse(date1).compareTo(f.parse(date2));
} catch (ParseException e) {
Log.e("Debug", "Parse Exception");
throw new IllegalArgumentException(e);
} catch (java.text.ParseException e) {
e.printStackTrace();
}
return 0;
}
});
您使用了一个规划列表,所以您想要比较所有的规划。
您需要一个规划比较器,并且要比较两个规划,您需要使用它们的开始日期。
你可以试试这个:
Collections.sort(datestring, new Comparator<Planning>() {
DateFormat f = new SimpleDateFormat("dd/MM/yyyy '@'hh:mm a");
@Override
public int compare(Planning o1, Planning o2) {
Date date1 = o1.getStart();
Date date2 = o2.getStart();
try {
return f.parse(date1).compareTo(f.parse(date2));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
});
我有一个 "Planning" 的 ListArray。
ArrayList<Planning> tmpListPlanning
这是我的 "Planning Class":
public class Planning {
private String start;
private String title;
}
问题是,我 "tmpListPlanning" 收到的元素乱七八糟 。
我想按照日期对它们进行排序。 日期格式如下:
"2013-12-10 14:00:00"
我在 Whosebug 上看到了这个,但我无法让它在自定义对象列表上工作:
Collections.sort(datestring, new Comparator<String>() {
DateFormat f = new SimpleDateFormat("dd/MM/yyyy '@'hh:mm a");
@Override
public int compare(String o1, String o2) {
try {
return f.parse(o1).compareTo(f.parse(o2));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
});
你能帮帮我吗? 谢谢。
编辑 1 :
Collections.sort(tmpListPlanning, new Comparator<Planning>() {
DateFormat f = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
@Override
public int compare(Planningo1, Planning o2) {
String date1 = o1.getStart();
String date2 = o2.getStart();
try {
Log.e("Debug", "RETURN");
return f.parse(date1).compareTo(f.parse(date2));
} catch (ParseException e) {
Log.e("Debug", "Parse Exception");
throw new IllegalArgumentException(e);
} catch (java.text.ParseException e) {
e.printStackTrace();
}
return 0;
}
});
您使用了一个规划列表,所以您想要比较所有的规划。 您需要一个规划比较器,并且要比较两个规划,您需要使用它们的开始日期。
你可以试试这个:
Collections.sort(datestring, new Comparator<Planning>() {
DateFormat f = new SimpleDateFormat("dd/MM/yyyy '@'hh:mm a");
@Override
public int compare(Planning o1, Planning o2) {
Date date1 = o1.getStart();
Date date2 = o2.getStart();
try {
return f.parse(date1).compareTo(f.parse(date2));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
});