次のようなカスタム オブジェクトの ArrayList があるとします。
class fileOjb
{
String path;
String format;
int size;
int dateadd;
}
パス、フォーマット、サイズ、追加日など、どのように並べ替える必要がありますか?
ありがとう!
独自のコンパレータを作成し、 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)
ます。方法