gpt4 book ai didi

java - 这个 while 循环对整数集合的结果是什么?

转载 作者:行者123 更新时间:2023-12-01 07:27:07 25 4
gpt4 key购买 nike

感谢您的宝贵时间。我正在辅导一名高中计算机科学学生,对 Java 有点生疏。根据答案,下列练习题的答案为E。

为什么答案应该是E?

非常感谢任何见解。谢谢。

示例问题:考虑以下实例变量和方法。

 private List<Integer> nums;

/ ** Precondition: nums.size > 0 */
public void numQuest()
{
int k = 0;
Integer zero = new Integer(0);
while (k < nums.size())
{
if (nums.get(k).equals(zero))
nums.remove(k);

k++;
}
}

假设List nums最初包含以下内容整数值。

[0, 0, 4, 2, 5, 0, 3, 0]

执行 numQuest 后,List nums 将包含什么?

(a) [0, 0, 4, 2, 5, 0, 3, 0]

(b) [4,2,5,3]

(c) [0, 0, 0, 0, 4, 2, 5, 3]

(d) [3, 5, 2, 4, 0, 0, 0, 0]

(e) [0, 4, 2, 5, 3]

最佳答案

在循环开始时

k = 0
nums = [0, 0, 4, 2, 5, 0, 3, 0]

(忘记符号)

nums[k] == nums[0] == 0

所以我们必须删除它。第一次迭代后

k = 1
nums = [0, 4, 2, 5, 0, 3, 0] // the first 0 was removed

现在

nums[k] == nums[1] == 4

所以我们不会删除它。您基本上跳过了原始列表中的第二个元素,因为您没有考虑到第一个元素已被删除。这是您在迭代集合时通常无法从集合中删除的原因之一。

关于java - 这个 while 循环对整数集合的结果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751803/

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