1

我创建了一个默认构造函数,它创建了一个空的“手”。

  public Hand() {
    hand = new ArrayList();
  }

让第二个构造函数获取一组卡片,然后添加它们的最有效方法是什么?

4

3 回答 3

7

我将有一个构造函数来做这两件事。

public Hand(Card... cards) {
    hand = Arrays.asList(cards);
}

或者 Rohit Jain 建议的 ArrayList 副本。

于 2012-11-14T18:55:04.340 回答
4

你可以这样做: -

public Hand(String[] hands) {
    hand = new ArrayList<String>(Arrays.asList(hands));
}

或者,您可以遍历您的字符串数组,并将单个元素添加到您的ArrayList.

public Hand(String[] hands) {
    hand = new ArrayList<String>();

    for (String elem: hands) 
         hand.add(elem);
}

PS: - 总是声明一个Generic Type列表。

于 2012-11-14T18:52:11.597 回答
0

还有另一种选择Collections.addAll

public Hand(Card[] cards) {
    hand = new ArrayList<Card>();
    Collections.addAll(hand, cards);
}

根据文档:

将所有指定元素添加到指定集合。要添加的元素可以单独指定,也可以作为数组指定。此便捷方法的行为与 c.addAll(Arrays.asList(elements)) 的行为相同,但此方法在大多数实现下可能运行得更快。

于 2012-11-14T19:05:30.490 回答