空の「手」を作成するデフォルトのコンストラクターを作成しました。
public Hand() {
hand = new ArrayList();
}
2番目のコンストラクターにカードの配列を取得させてからそれらを手札に追加させる最も効率的な方法は何ですか?
空の「手」を作成するデフォルトのコンストラクターを作成しました。
public Hand() {
hand = new ArrayList();
}
2番目のコンストラクターにカードの配列を取得させてからそれらを手札に追加させる最も効率的な方法は何ですか?
両方を実行するコンストラクターが1つあります。
public Hand(Card... cards) {
hand = Arrays.asList(cards);
}
または、RohitJainが示唆するように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))の動作と同じですが、このメソッドはほとんどの実装で大幅に高速に実行される可能性があります。