首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法在迭代集合时对其进行修改。- Apex类

在Apex类中,无法在迭代集合时对其进行修改。这是因为在Apex中,迭代器是只读的,不允许在迭代过程中修改集合的元素。

迭代集合是指通过循环遍历集合中的元素。在Apex中,我们可以使用for循环、while循环或者迭代器来实现集合的迭代。

当我们使用迭代器来遍历集合时,迭代器会维护一个指向当前元素的指针。在迭代过程中,如果我们尝试修改集合的元素,会导致迭代器失效,从而引发运行时异常。

为了避免这种情况,我们可以在迭代集合之前,先将需要修改的元素保存到另一个集合中,然后在迭代结束后,再对原集合进行修改。

以下是一个示例代码,演示了如何在Apex中避免在迭代集合时进行修改:

代码语言:txt
复制
List<Integer> numbers = new List<Integer>{1, 2, 3, 4, 5};
List<Integer> numbersToUpdate = new List<Integer>();

// 遍历集合并保存需要修改的元素
for(Integer num : numbers) {
    if(num % 2 == 0) {
        numbersToUpdate.add(num);
    }
}

// 迭代结束后,对原集合进行修改
for(Integer num : numbersToUpdate) {
    numbers.remove(num);
}

System.debug(numbers); // 输出 [1, 3, 5]

在上述示例中,我们遍历了一个整数类型的集合,并将其中的偶数保存到了numbersToUpdate集合中。然后,在迭代结束后,我们使用remove方法从原集合numbers中删除了这些偶数。最后,我们通过System.debug方法验证了原集合的修改结果。

需要注意的是,虽然Apex不允许在迭代集合时进行修改,但我们仍然可以通过索引来修改集合中的元素。例如,可以使用List类的set方法来修改列表中指定索引位置的元素。

总结起来,无法在迭代集合时对其进行修改是为了保证代码的可靠性和一致性。在编写Apex代码时,我们应该遵循这一原则,避免在迭代集合时进行修改操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券