1

我正在尝试为一个类实现一个重置函数,最简单的方法是removeAll()在 arraylist 上使用并调用构造函数。但是,这似乎也不起作用,因为我的语法错误,我正在尝试一些我做不到的事情。

到目前为止,我有一个工作方法,但我想清理它,因为它只是removeAll()来自被调用的构造函数的重复代码(所有期望语句)StandardDeck()

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);
        }
    }
}
4

1 回答 1

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是清除列表的标准和最佳解决方案。

于 2013-03-22T17:18:24.570 回答