有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    在循环开始时

    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
    

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