0

次のようなカスタム オブジェクトの ArrayList があるとします。

class fileOjb
{
    String path;
    String format;
    int size;
    int dateadd;
}

パス、フォーマット、サイズ、追加日など、どのように並べ替える必要がありますか?

ありがとう!

4

3 に答える 3

7

独自のコンパレータを作成し、 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
于 2012-08-08T18:05:56.167 に答える
2

でソートするためのコード例を次に示します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());
于 2012-08-08T18:13:38.307 に答える
0

を実装し、Comparator<fileObj>を使用してリストをソートしCollections.sort(list, comparator)ます。方法

于 2012-08-08T18:06:24.327 に答える