1

空の「手」を作成するデフォルトのコンストラクターを作成しました。

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

2番目のコンストラクターにカードの配列を取得させてからそれらを手札に追加させる最も効率的な方法は何ですか?

4

3 に答える 3

7

両方を実行するコンストラクターが1つあります。

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

または、RohitJainが示唆するように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 に答える