我已经做了这个数组的卡使用的西装和职级枚举数,但它是不变的。我不能把任何东西从墙上移开 Deck
. 我可以用 shuffle
通过使用
void shuffle() {
List<Card> shuffold = Arrays.asList(cards);
}
我不能用 remove
即使在使用 Arrays.asList(cards)
我不想每次发牌都用一副新牌,只是在开始新牌的时候。我应该做这个吗 Deck
一 ArrayList
或者我可以把它转换成一个可变的集合,或者这是可能的?
public class Deck {
public final Card[] cards;
public Deck() {
cards = new Card[52];
int i = 0;
for (Suit suit : Suit.values()) {
for (Rank rank : Rank.values()) {
cards[i++] = new Card(rank, suit);
}
}
}
}
我已经可以用了 shuffle
但是数组仍然是不变的,因为我不能用它来移除牌组中的第一张牌:
void deal() {
Collection deal = new ArrayList(Arrays.asList(cards));
deal.remove(0);
}
2条答案
按热度按时间dzjeubhm1#
主要特点
Arrays.asList
方法是返回的列表由指定的数组支持,因此可以使用Collections
方法。由于数组的大小是固定的,所以这个列表的大小也是固定的,但是您可以对它进行洗牌或以其他方式进行更改。要指定返回集合的类型,可以使用Java8
toCollection
方法:ny6fqffe2#
你可能想让一副甲板成为
List
所以它有一个命令,但这很简单。写吧或者如果你真的想要一套