我正在尝试为类实现重置函数,最简单的方法是在arraylist上使用removeAll()
并调用构造函数。然而,这似乎不起作用,因为我有错误的语法,我正在尝试一些我不能做的事情。
截至目前,我有一个工作方法,但我想清理它,因为它只是重复代码(所有期望removeAll()
语句)来自构造函数,称为StandardDeck()
。< / p>
public void reset(){
cardArray.removeAll(cardArray);
for(int suit = 0; suit < 4; suit++){
for(int rank = 0; rank < 13; rank++){
PlayingCard card = new PlayingCard(suit, rank);
cardArray.add(card);
}
}
}
答案 0 :(得分:3)
如果我理解你的需要,你想要这个:
public class StandardDeck {
List<PlayingCard> cardArray = new ArrayList<>();
public StandardDeck() {
reset();
}
public void reset() {
cardArray.clear();
for(int suit = 0; suit < 4; suit++){
for(int rank = 0; rank < 13; rank++){
PlayingCard card = new PlayingCard(suit, rank);
cardArray.add(card);
}
}
}
}
无需复制循环。正如我在clear之前指出的那样,是清除列表的标准和最佳解决方案。