Ich muss Vergleichsklassen zu einer Klasse hinzufügen, die eine Karte in Java darstellt. Ein Komparator (compareAscending) sortiert die Karten in aufsteigender Reihenfolge, sortiert zuerst nach Farbe und dann nach Rang (d. H. Reihenfolge Pik, Herz, Karo, Kreuz, dann nach Wert). Der zweite Komparator (compareRank) sortiert in aufsteigender Rangfolge, d. H. Zuerst alle zwei, dann alle drei. .Einfügen von Vergleichsklassen in einer Java-Klasse
Anzug und Rang sind beide Aufzählungen und der Code für sie unter
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)];
}
}
Ive ist nie zuvor Komparator Klassen verwendet, so wurde gefragt, ob jemand erklären könnte, wie ich zum Einfügen von ihnen gehen? Sind sie dasselbe wie die Klasse vergleichbar zu machen (was es ist)?
Vielen Dank im Voraus.
Sie könnten mit diesen Vergleichsmethoden eine Card-Klasse erstellen. Verwenden Sie einfach '.ordinal()', um die Position der Enumeration im Enumerationsfeld zu ermitteln und sie so zu vergleichen. – vedi0boy
Sie fragen nach einem Tutorial. Warum * speziell * können Sie den Code nicht selbst schreiben? – Raedwald
Sie müssen sie nicht "einfügen", sondern nur zwei "Comparator" -Implementierungen durchführen und eine Instanz dieses Komparators an die Sortierfunktion übergeben, die sie verwenden soll. – Krease