2016-05-10 5 views
0

私は実装されたメソッドでComparableを実装するカスタムクラスを持っています。私のコード:Androidで2種類の並べ替えを追加するにはどうすればよいですか?

@Override 
public int compareTo(Car car) { 

    String tmp = price.replace(" €", "").replaceAll(" ", ""); 
    String tmp2 = car.price.replace(" €", "").replaceAll(" ", ""); 

    Integer p1 = Integer.valueOf(tmp); 
    Integer p2 = Integer.valueOf(tmp2); 

    return p1.compareTo(p2); 
} 

その後、私はCollections.sort(carList);を呼び出して、私のアダプタに通知します。今、降順でp2.compareTo(p)を返す同様のメソッドを実装したいと思いますが、成功しませんでした。

ご協力いただきありがとうございます!

+0

「return p2.compareTo(p1)」と同じですが、 – m0skit0

+0

しかし、どこでこのメソッドを記述しますか?そして、Coolections.sort(list)を呼び出すときに、最初のメソッドではなく2番目のメソッドを使用するように指示するにはどうすれば使用できますか?私のCarクラスでメソッドを2回オーバーライドすることはできません。 – Jay

+2

あなたのクラスで 'Comparable'を使うには、2つの' Comparators'を書いて、あなたがしたいソートに応じて 'Collections.sort(Collection、Comparator)'に渡すべきです。また、あなたが今やっているようにそれを行うことができますし、必要に応じて並べ替えられたリストを逆にすることもできます。 – m0skit0

答えて

2

Comparableをクラスに実装する代わりに、2 Comparatorと書いて、どちらの並べ替えを行うかに応じてCollections.sort(Collection, Comparator)に渡す必要があります。

あなたが今やっているようにすることができますし、必要に応じて並べ替えられたリストを逆順にすることができます。

関連する問題