タグ付けされた質問 「comparable」


19
ComparableおよびComparatorを使用する場合
私はフィールドでソートする必要があるオブジェクトのリストを持っています、例えばスコア。あまり考えずに、Comparatorを実装する新しいクラスを作成しました。このクラスは、タスクを実行して機能します。 これを振り返ると、Comparatorを実装する新しいクラスを作成するのではなく、代わりにmyクラスにComparableを実装させる必要があるのか​​と思います。スコアは、オブジェクトが注文される唯一のフィールドです。 練習として許容できることは何ですか? 「最初にクラスにComparableを実装させて(自然順序付けのため)、代替のフィールド比較が必要な場合は、Comparatorを実装する新しいクラスを作成する」という正しいアプローチですか? 上記の(2)がtrueの場合、クラスにComparableを実装させた後でのみコンパレータを実装する必要があるということですか?(私が元のクラスを所有していると仮定します)。

10
Javaに相当するインターフェースを実装する方法は?
抽象クラスに同等のインターフェイスを実装する方法がわかりません。私は次のサンプルコードを使用して、それを試してみて、それを回避します: public class Animal{ public String name; public int yearDiscovered; public String population; public Animal(String name, int yearDiscovered, String population){ this.name = name; this.yearDiscovered = yearDiscovered; this.population = population; } public String toString(){ String s = "Animal name: "+ name+"\nYear Discovered: "+yearDiscovered+"\nPopulation: "+population; return s; } } 私は、Animalタイプのオブジェクトを作成するテストクラスを持っていますが、このクラス内に同等のインターフェイスを用意して、古い年月の発見が低いランクより高くなるようにしたいと考えています。どうすればいいのか分かりません。
101 java  comparable 

5
JavaのEnum finalでcompareToを使用するのはなぜですか?
Javaの列挙型がComparableインターフェースを実装します。ComparableのcompareToメソッドをオーバーライドすると良かったのですが、ここではfinalとマークされています。上のデフォルトの自然な順序EnumさんがcompareToリストされているためです。 Java列挙型にこの制限がある理由を誰かが知っていますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.