Java - 迭代ArrayList并传输元素

时间:2012-11-16 23:39:00

标签: java iterator

我的程序创建了一副牌,并将它们全部交给4个不同的牌。 这是我的代码。它创造了4只手并将牌交给每个人。

    Hand[] hands = new Hand[4];
       for(int i=0; i<hands.length; i++){
           hands[i] = new Hand();
       }
       for(int i=0; i<=Deck.size()+8; i++){
           for(Hand hand : hands){
               hand.addSingleCard(Deck.deal());
           }
       }

现在我有4手牌,每张牌有13张牌,我想迭代第一手牌,移开每张牌并将其添加到秒针,因此手1有0张牌而手牌2有26张牌。 实现这个的最佳方法是什么?

我是自学,所以如果你的方法与其他人发布的方法不同,我仍然希望看到它:)

2 个答案:

答案 0 :(得分:2)

假设Hand将其卡片保存到Collection<Card>(例如List<Card>Set<Card>):

public void transferAllCardsToOtherHand(Hand hand) {
    hand.cards.addAll(this.cards);
    this.cards.clear();
}

答案 1 :(得分:1)

假设Hand类中的卡数据结构是数组或Collection,您可以使用for-each循环。

static void transferCards (Hand from, Hand to) {
    for (Card card : from.cards) {
        to.addSingleCard(card);
    }
    from.cards.clear();
}

随意替换from.cards以及代表您卡片的变量。