将数组分配给已声明和已初始化的ArrayList

时间:2017-03-12 22:42:11

标签: java arrays list arraylist

我有一个名为Cards的数组列表,它已经存储了52个Card对象。然后我重新排序并将Array List卡中的Card对象放入名为cardsShuffled的Array中。我现在正在尝试将cardsShuffled Array分配给卡列表列表,但它不会起作用。我已经尝试过我在网上找到的所有东西,似乎没什么用。有谁知道这样做的方法?

卡声明:

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

我尝试过的事情:

Collections.addAll(cards, cardsShuffled);

cards = Arrays.asList(cardsShuffled);

人们也建议做

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

但是,正如我预测的那样,因为已经声明了阵列列表卡,所以没有用。

更新

这是我的代码:

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));

}

2 个答案:

答案 0 :(得分:1)

你尝试过这个吗?

expiry_date (VARCHAR)

答案 1 :(得分:0)

如果我正确理解了问题,您需要将cards = new ArrayList<Card>(Arrays.asList(cardsShuffled)); 列表转换为数组并将其分配给cards。您可以使用cardsShuffled方法,例如:

toArray

HerecardsShuffled = cards.toArray(new Card[cards.size()]); 方法的javadoc。

<强>更新

如果您希望toArray引用指向cards数组,那么您可以使用cardsShuffled类的asList方法,例如:

Arrays

但是,通过这样做,您将丢失由cards = Arrays.asList(cardsShuffled); 引用的列表(即包含cardscards元素的列表)。最好的方法是声明另一个引用并为其分配列表,例如:

cardsShuffled