長いプロパティによってオブジェクトのリストをソート

アリレザありません時間:

このようにCollections.sort(オブジェクト)を使用して、int型の値を比較することが可能です。

Collections.sort(priceList, new Comparator<MyObject>() {
    @Override
    public int compare(MyObject o1, MyObject o2) {
        return Integer.parseInt(o1.getPrice()) - Integer.parseInt(o2.getPrice());
    }
});

そしてLong.compareCollections.sort(オブジェクト)を使用して、long値を比較するAPI 19以降で利用可能です:

Collections.sort(priceList, new Comparator<MyObject>() {
    @Override
    public int compare(MyObject o1, MyObject o2) {
        return Long.compare(o2.getPrice(), o1.getPrice());
    }
});

しかし、minSdkVersion私のアプリのです16、私の価格の値は、int型の範囲の最大値よりも大きいです!

どのようにソート私によって私のオブジェクトの一覧表示することができlong、APIレベル16以降で財産?

何ベラ:

の定義を見てくださいLong#compare

public static int compare(long x, long y) {
    return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

Similary、あなただけで缶return 1他の値よりも値が大きい場合、0等しい場合と-1未満の場合:

Collections.sort(priceList, new Comparator<MyObject>() {
    @Override
    public int compare(MyObject o1, MyObject o2) {
       return (o1.getPrice() < o2.getPrice()) ? -1 : ((o1.getPrice() == o2.getPrice()) ? 0 :1 );
});

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=229974&siteId=1