繁体   English   中英

Java-迭代ArrayList并传输元素

[英]Java - Iterate an ArrayList and Transferring the elements

我的程序创建了一副纸牌,并将它们全部分发给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张牌,我想在第一张牌上进行迭代,取出每张牌并将其添加到第二张牌中,这样第一张牌有0张牌,第二张牌有26张。实现此目的的最佳方法是什么?

我是自我学习的,因此,如果您使用的方法与其他人发布的方法不同,我仍然很乐意看到它:)

假设Hand将其卡保持在Collection<Card> (例如, List<Card>Set<Card> ):

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

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

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

随意用代表您卡片的变量替换from.cards

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM