說我有自定義對象的ArrayList,如如何通過其對象屬性對ArrayList進行排序?
class fileOjb
{
String path;
String format;
int size;
int dateadd;
}
我應該如何通過 排序呢 - 路徑,格式,大小或dateadded?
謝謝!
說我有自定義對象的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