当前位置: 首页 > 面试题库 >

Java:这两个代码是否相同?

苏承载
2023-03-14
问题内容
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());
}

第二个代码产生了一个空指针异常,该怎么做才能使下一个等效?


问题答案:

我可以看到,如果players某个自定义java.lang.Iterable的get()实现的实现被破坏,或者至少以一种java.util.List异常的方式(与的行为不同),就会发生这种情况。

除此之外,我唯一能想到的就是您未在代码中向我们展示的某些内容导致了某些错误。

如果执行此操作会怎样?

for (Iterator<Player> playerIter = players.iterator(); playerIter.hasNext();) 
{
  Player p = playerIter.next();
  p.addCard(deck.dealCard());
  p.addCard(deck.dealCard());
}


 类似资料:
  • 这两个代码的行为都会在值不存在时引发异常。 我想知道这两个代码之间的区别。

  • 问题内容: 这两个查询似乎返回相同的结果。那是巧合还是真的一样? 1。 2。 有点解释:我试图从充满交易的表中获得不同的项目清单。对于每个项目,我正在寻找ItemNumber(标识字段)和最新的ItemDescription。 问题答案: 您的示例#2让我挠了一下头-我对自己说:“您不能发表任何专栏,那意味着什么?” -直到我意识到发生了什么。 当你有 你是 不是 ,尽管外表,实际上需要的不同值

  • 有人问这两者是否相同,我更喜欢哪一个。我告诉他他们是一样的,但他似乎对答案不满意。那么,它们是不同的还是相同的,你更喜欢哪一个?

  • 考虑到招聘过程中的一些问题,一个问题是在Java中从给定字符串中找到第一个非重复字符。下面是两个示例代码,其中第一个能够通过所有测试用例,但由于时间复杂性,第二个在少数测试用例中失败。由于我对算法和复杂性分析比较陌生,有人能帮我理解这两个代码的时间复杂性是否不同以及如何不同吗? 示例代码1: 示例代码2:

  • 嗨,我正在尝试解决Udemy练习:编写一个名为hasSharedDigit的方法,其中包含int类型的两个参数。 每个数字应在10(含)-99(含)之间。如果其中一个数字不在范围内,则该方法应返回false。 如果两个数字中都有数字,例如12和23中的2,则该方法应返回true;否则,该方法应返回false。 我一直在得到真实,而有共享数字(9,99)我无法发现为什么.. }