2017-03-12 13 views
-3

配列リストには52個のCardオブジェクトがすでに格納されています。配列リストカードのCardオブジェクトを並べ替え、配列をcardsShuffledにしました。私は今、カードArray ListにcardsShuffled Arrayを割り当てようとしていますが、動作しません。私はすでに私がオンラインで見つけたものすべてを試したが、何も動作していないようだ。誰かがこれを行う方法を知っていますか?すでに宣言されて初期化されたArrayListに配列を割り当てる

カード宣言:私はこれがために動作しませんでした予測として

Collections.addAll(cards, cardsShuffled); 

cards = Arrays.asList(cardsShuffled); 

人々はまた、しかし

ArrayList <Card> cards = new ArrayList<Card>(Arrays.asList(cardsShuffled)); 

をやって示唆している:私が試した何

ArrayList <Card> cards = new ArrayList<Card>(); 

Array Listカードはすでに宣言されています。


UPDATEはここ

が私のコードです:

private void shuffle(){ 
    Card cardsShuffled[] = new Card[52]; 
    int insertIndex; 

    for(int k = 0; k < 52; k += 1){ 
     //Random index to insert the card into 
     insertIndex = (int)(Math.random() * (51 - 0) + 0); 

     //Insert index k of cards array list into random index of cardsShuffled array 
     cardsShuffled[insertIndex] = cards.get(k); 
    } 
    //Set cards to the array of the shuffled array cardsShuffled 
    cards = new ArrayList<Card>(Arrays.asList(cardsShuffled)); 

} 
+1

'場合、あなたはただ単に、その後、変数を再割り当てあなたの最後のコードスニペットを使用したい:最善のアプローチは、例えば、別の参照を宣言し、それにリストを割り当てることであろう最初は型宣言なし。 – 4castle

+0

私はそれをしましたが、それを実行するとエラーになります – cliffdog

+0

私は問題を理解しようとしているので少し不満ですが、あなたは非常に曖昧です。正確にはどのようなエラーですか? – 4castle

答えて

1

あなたはこれを試してみましたか?

cards = new ArrayList<Card>(Arrays.asList(cardsShuffled)); 
+0

「これは何が違うのですか?これは答えよりもコメントのように見えます。 –

+0

はい私はそれを実行すると私にエラーを与えることを試みた。 – cliffdog

+0

おっと、私の悪い。それはもちろん、コメントであるはずだった。彼はそれが既に宣言されていたので動作しないと言ったので、私は単に2番目の宣言を削除しました。 – Xyexs

0

あなたは配列にcardsリストを変換し、私が正しく質問を理解している場合cardsShuffledに割り当てる必要があります。あなたはそのためのtoArray方法、例えば:toArray方法について

cardsShuffled = cards.toArray(new Card[cards.size()]); 

HereのJavadocを使用することができます。

更新

あなたはcardsShuffled配列を指すようにcards参照をしたいなら、あなたはArraysクラスのasList方法、例えば使用することができます。しかし、そうすることによって、あなたが失うことになる

cards = Arrays.asList(cardsShuffled); 

cards(つまり、cardscardsShuffledの両方の要素を含むもの)によって参照されているリスト。 cards`が既に宣言されてい

List<Card> cardShuffledList = Arrays.asList(cardsShuffled); 
+0

私はまだ 'cards'を配列リストにします。 – cliffdog

+0

彼らは、配列をリストに戻すことを試みています。その逆ではありません。 – 4castle

+0

'cards'はarraylistのみです。このメソッドは 'cards'に全く影響しません。 –

関連する問題