【发布时间】:2017-03-18 04:20:40
【问题描述】:
我目前正在学习 Java,我有兴趣学习如何使用 list foreach 方法,而不是使用手动构造的 for 循环。我怀疑他们可以执行相同的操作。
我当前的代码如下所示:
while(!this.cards.isEmpty()) {
for(int i = 0; i < this.table.GetPlayerCount() && !this.cards.isEmpty(); i++) {
DealOneCardToPlayer(this.table.players.get(i) ,this.cards.get(0));
this.cards.remove(0);
}
}
我怀疑有一种方法可以使用这样的东西:
this.cards.foreach() { do suff }
但我还没有完全确定语法...有人可以帮我快速解决吗?
【问题讨论】:
-
for(...)中的额外条件意味着这不是一个简单的for循环。如果您正在尝试学习如何使用forEach,这不是学习的最佳示例。 -
不过,您真的不需要在循环中移除卡片。如果你改用
this.cards.iterator(),你可以简单地得到下一张卡,而不用移除它们(然后你可以在之后调用this.cards.clear(),如果你愿意的话)。 -
好吧,我正在尝试学习如何对“现实世界”进行建模——所以当庄家从“套牌”中发牌时,这就是这个循环正在做的事情。当一张牌被发给玩家时,它会从“套牌”中“移除”。我想我想保留这一点 - 代码正在工作 - 我只是在寻找更简洁的表达方式,我认为 foreach 就是这样。 @user902383 为什么你说你不认为我可以在这里使用 foreach?