Java'da bir kart sınıfı üzerinde çalışıyorum ve belirli bir yöntemin uygulanmasından emin değilim. Kartlar listesindeki en yüksek değer kartını bulmak ve döndürmek için bir compareTo yöntemi kullanan statik bir yöntem (en çok arayacağım) eklemem gerekir. Ancak, listeyi geçmek için bir yineleyici kullanmam gerekiyor.Yineleyici (Java) kullanarak bir listede en yüksek değeri döndürme yöntemi
Uyguladığım compareTo yöntemi aşağıdadır. Kartları sıraya göre sıralar, önce sıraya göre sıralayın.
public int compareTo(Card card) {
if (this.rank.compareTo(card.rank) > 0){
return 1;
} else if (this.rank.compareTo(card.rank) < 0){
return -1;
} else {
if(this.suit.compareTo(card.suit) > 0){
return 1;
} else if (this.suit.compareTo(card.suit) < 0){
return -1;
} else {
return 0;
}
}
Ayrıca iki enum'u da takımım ve rütbem için ekliyorum. şeyler kafa karıştırıcı kalmamak
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)];
}
}
Ben bütün sınıfını dahil etmek istemiyorum ama tek yapıcısı değişkenleri, rütbe ve tip Sıralaması ve Suit takım elbise içerir. Sıra ve takım elbise ve bir toString() yöntemi için erişim yöntemleri.
Yanıtı takip ederek zor bir yöntem yaptım.
maksimum değerini tutacak senin ' v max() ' yöntem gibi görünüyor. –
Özür dilerim, bunun çok net olmadığını farkettim. Max() yöntemi sorun, henüz bir yöntemim yok, nasıl uygulanacağından emin değilim. Bir listeyi sıralamak için compareTo yöntemini kullanacağını ve en büyük (ilk olan) değerini döndüreceğini, ancak yineleyici bölümünün beni attığını varsayalım. Cheers –