gpt4 book ai didi

Java:这两个代码相同吗?

转载 作者:行者123 更新时间:2023-11-29 10:07:51 26 4
gpt4 key购买 nike

for (Player p : players) 
{
p.addCard(deck.dealCard());
p.addCard(deck.dealCard());
}

  for (int i = 0; i < players.size() ; i++)
{
Player p = players.get(i);
p.addCard(deck.dealCard());
p.addCard(deck.dealCard());
}

第二个代码产生了一个空指针异常,可以做些什么来使底部的代码等效?

最佳答案

这将是一个非常大胆的猜测:size() 可能不会产生 players 中的 Player 数量,而是产生 players 的总容量。而且,玩家的迭代器仅迭代分配的项目。

所以从标题回答你的问题,这两段代码不一定相同。 for-each 结构使用迭代器,代码的创建者可以使用他认为最适合任何玩家类型的任何实现。

您的 for-each 结构的 for 等效项应该看起来更像这样:

for (Iterator<Player> i = players.iterator(); i.hasNext(); ){
Player p = i.next();
//... Your code here
}

关于Java:这两个代码相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422320/

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