如何通过其对象属性对ArrayList进行排序?
说我有自定义对象的ArrayList,如如何通过其对象属性对ArrayList进行排序?
class fileOjb
{
String path;
String format;
int size;
int dateadd;
}
我应该如何通过 排序呢 - 路径,格式,大小或dateadded?
谢谢!
这里是代码example.for排序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和的调用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
但@thinksteep我该怎么做,没有一个代码示例:) – 2012-08-08 18:07:06
呜。很好的编辑。 :) – 2012-08-08 18:07:36
@Frank Sposaro [http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html](http://docs.oracle.com/javase/tutorial/collections/interfaces/order。 html) – 2012-08-08 18:08:23
实现一个Comparator<fileObj>
和排序使用Collections.sort(list, comparator)
列表;方法
THANKs,似乎工作! :) – 2012-08-08 18:15:58