JavaでCardを表すクラスにComparatorクラスを追加する必要があります。 1つの比較器(compareAscending)は、カードを昇順にソートし、最初にソートしてランク付けする(すなわち、スペード、ハート、ダイヤモンド、クラブ、そして値順に並べる)。第2の比較器(compareRank)は、ランクの昇順、すなわちすべての2つの順、次にすべての3つの順にソートする。 。JavaクラスでComparatorクラスを挿入する
スーツとランクが両方列挙型であり、それらのコードは、
enum Rank {
TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8),
NINE(9), TEN(10), JACK(10), QUEEN(10), KING(10), ACE(11);
private int value;
Rank(int i) {
value = i;
}
public int getValue() {
return value;
}
public Rank getPrevious() {
return values()[ordinal() > 0 ? ordinal() - 1 : 0];
}
}
enum Suit {
CLUBS, DIAMONDS, HEARTS, SPADES;
public static Suit randomSuit() {
Random random = new Random();
return values()[random.nextInt(values().length)];
}
}
アイブ氏の下に誰かが、私はそれらを挿入するに取り掛かる方法を説明することができればそう思っていた、前コンパレータクラスを使用されることはありませんか?彼らはクラスを同等にする(それは同じですか?)
ありがとうございます。あなたも、あなたは、コードの重複を避けるためにあなたのcompareTo
メソッドの定義のコンパレータのいずれかを使用することができます
comparator.compare(a, b);
a.compareTo(b)
は次のようになります。
これらの比較メソッドでCardクラスを作成できます。単に '.ordinal()'を使って列挙型配列内の列挙型の位置を取得し、そのように比較してください。 – vedi0boy
チュートリアルを求めています。 *あなたは自分でコードを書くことはできないのですか? – Raedwald
それらを「挿入」する必要はなく、2つの「Comparator」実装を作成し、そのComparatorのインスタンスをソート関数に渡して使用するだけです。 – Krease