java在整数集合上的whileloop的结果是什么?
谢谢你抽出时间。我在教一个高中计算机科学的学生,对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++;
}
}
假设列表nums最初包含以下内容 整数值
[0,0,4,2,5,0,3,0]
执行numQuest后,列表NUM将包含哪些内容
(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]
# 1 楼答案
在循环开始时
(忘记符号)
所以我们必须移除它。在第一次迭代之后
现在
所以我们不移除它。您实际上跳过了原始列表中的第二个元素,因为您没有考虑到第一个元素已被删除。这是在迭代集合时通常无法从集合中删除的原因之一