gpt4 book ai didi

java - 删除一个列表中的所有元素并添加到另一个列表 - Java

转载 作者:行者123 更新时间:2023-12-01 16:59:41 24 4
gpt4 key购买 nike

所以我试图从玩家的“机架”(ArrayList)中删除所有卡牌,并将其一张一张地放入弃牌堆(Stack)中。到目前为止,我有以下代码,我意识到一旦达到 5 就会停止。(注意:每个玩家架上有 10 张牌)。

        int rackSize = player.getPlayerRack().getRack().size(); // rackSize = 10
for (int i = 0; i < rackSize; i++) {
getDeck().getDiscardPile().add(player.getPlayerRack().getRack().remove(i));
}

我的问题是如何删除玩家“机架”中的所有元素,使机架大小 = 0,并将它们全部添加到丢弃堆中?

如果这令人困惑,非常抱歉。你可以概括这一点,说ArrayList<Integer> hand中有10个整数。 ,所以:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 。如何从此列表中删除所有项目并将它们添加到 Stack<Integer> discardPile

最佳答案

当您从 Rack 中删除元素时发生的情况,您仍在使用 i++ 递增,表示旧索引处的新值 i仍然被抛在后面。您需要做的是将代码更改为:

int rackSize = player.getPlayerRack().getRack().size(); // rackSize = 10
for (int i = 0; i < rackSize; i++) {
getDeck().getDiscardPile().add(player.getPlayerRack().getRack().remove(0));
}

这样,您始终可以到达 Rack 中的第一个新元素。直到它为空,假设 Rack执行此代码时不会重新填充。

关于java - 删除一个列表中的所有元素并添加到另一个列表 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28664205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com