我创建了一个默认构造函数,它创建了一个空的“手”。
public Hand() {
hand = new ArrayList();
}
让第二个构造函数获取一组卡片,然后添加它们的最有效方法是什么?
我创建了一个默认构造函数,它创建了一个空的“手”。
public Hand() {
hand = new ArrayList();
}
让第二个构造函数获取一组卡片,然后添加它们的最有效方法是什么?
我将有一个构造函数来做这两件事。
public Hand(Card... cards) {
hand = Arrays.asList(cards);
}
或者 Rohit Jain 建议的 ArrayList 副本。
你可以这样做: -
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
列表。
还有另一种选择Collections.addAll
:
public Hand(Card[] cards) {
hand = new ArrayList<Card>();
Collections.addAll(hand, cards);
}
根据文档:
将所有指定元素添加到指定集合。要添加的元素可以单独指定,也可以作为数组指定。此便捷方法的行为与 c.addAll(Arrays.asList(elements)) 的行为相同,但此方法在大多数实现下可能运行得更快。