我必须创建一个ADT牌组,其中包含52张卡片,每张卡片都有自己的西装(心脏,俱乐部等)和等级(1、2,皇后,杰克等)
目前,我有一个DeckInterface类,一个实现接口的Deck类,一个用于实例化Card对象的Card类以及我的应用程序类,其中包含可执行的main方法等。
在我的牌组类中,我有以下代码将元素添加到数组中:
public void add(T newEntry)
{
deck[noOfEntries] = newEntry;
noOfEntries++;
}
在我的应用程序中,我有以下代码填充了“ deckOfCards”数组:
DeckInterface<Card> deckOfCards = new Deck<>();
for ( int suit = 1; suit <= 4; suit++ ) {
for (int rank = 1; rank <= 13; rank++) {
deckOfCards.add(new Card(suit, rank));
}
}
每个西服值对应于Hearts,Club等,每个等级值对应于Jack,Queen等。但是,当前每次添加Card似乎都会覆盖数组中的所有其他内容。当我尝试输出整个数组时,每个元素都具有与最近添加的元素相同的值。因此,无论我看数组中的哪个元素,排名都将为4,而西服将为13。
我尝试将其设置为字符串数组,并添加诸如“黑桃杰克”之类的值,这似乎可以与包含在该数组中的52张唯一卡片一起正常工作。将对象添加到通用数组是否有问题,或者我缺少什么?