【发布时间】:2012-08-05 21:57:46
【问题描述】:
假设我有一个自定义对象的 ArrayList,例如
class fileOjb
{
String path;
String format;
int size;
int dateadd;
}
我应该如何排序 - 路径、格式、大小或添加日期?
谢谢!
【问题讨论】:
假设我有一个自定义对象的 ArrayList,例如
class fileOjb
{
String path;
String format;
int size;
int dateadd;
}
我应该如何排序 - 路径、格式、大小或添加日期?
谢谢!
【问题讨论】:
您需要编写自己的comparator 并调用 Collections.sort(yourComparator)
例如:
class YourComparator implements Comparator<MyObj>{
public int compare(MyObj o1, MyObj o2) {
return o1.getyourAtt() - o2.getyourAtt();
}
}
NOTE: Cast o1 and 02 to your object type.
EDIT: Based on Ted comment, update to generics, now don't need cast
【讨论】:
这里是代码示例。用于按dateAdded 排序。
按其他属性排序..您必须首先确定您的criteria。
(字符串path1大于path2的条件是什么)
public class MyComparableByDateAdded implements Comparator<fileOjb>{
@Override
public int compare(fileOjb o1, fileOjb o2) {
return (o1.dateAdd>o2.dateAdd ? -1 : (o1.dateAdd==o2.dateAdd ? 0 : 1));
}
}
Collections.sort(list, new MyComparableByDateAdded());
【讨论】:
实现Comparator<fileObj> 并使用Collections.sort(list, comparator) 对列表进行排序;方法
【讨论】: