public class Card
{
int suit, rank;
public Card () {
this.suit = 0; this.rank = 0;
}
public Card (int suit, int rank) {
this.suit = suit; this.rank = rank;
}
}
class Deck {
Card[] cards;
public Deck (int n) {
cards = new Card[n];
}
public Deck () {
cards = new Card[52];
int index = 0;
for (int suit = 0; suit <= 3; suit++) {
for (int rank = 1; rank <= 13; rank++) {
cards[index] = new Card (suit, rank);
index++;
}
}
}
public int median (Deck deck) {
Arrays.sort(deck.cards);
return deck.cards[2].rank;
}
答案 0 :(得分:0)
Card需要实现Comparable接口,特别是compareTo方法。
答案 1 :(得分:0)
您的Card
课程需要实施Comparable<Card>
。这是必需的,以便Arrays.sort
方法可以调用您将在compareTo(Card card)
中实现的Card
方法,并根据其返回值进行排序。
从documentation,compareTo
执行以下操作:
将此对象与。进行比较 订单的指定对象。返回一个 负整数,零或正数 这个对象小于的整数, 等于或大于 指定的对象。
答案 2 :(得分:0)
您在Arrays.sort
上调用deck.cards
,这是一个Card对象数组,而不是整数数组。您的Card类需要实现可比性。
答案 3 :(得分:0)
为了使用Arrays.sort(Object [] o),您要排序的对象必须实现Compareable接口。