java - 如何迭代和修改 Java 集?

标签 java set

假设我有一个整数集,我想递增集合中的每个整数。我该怎么做?

我是否可以在迭代时添加和删除集合中的元素?

我是否需要创建一个新集合,以便在迭代原始集合时将元素“复制并修改”到其中?

编辑:如果集合的元素是不可变的怎么办?

最佳答案

您可以在迭代期间使用 Iterator 对象安全地从集合中移除;尝试在迭代时通过其 API 修改集合将破坏迭代器。 Set 类通过 getIterator() 提供了一个迭代器。

然而,Integer 对象是不可变的;我的策略是遍历集合,对于每个整数 i,将 i+1 添加到一些新的临时集合中。完成迭代后,从原始集合中移除所有元素并添加新临时集合的所有元素。

Set<Integer> s; //contains your Integers
...
Set<Integer> temp = new Set<Integer>();
for(Integer i : s)
    temp.add(i+1);
s.clear();
s.addAll(temp);

关于java - 如何迭代和修改 Java 集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7393398/

相关文章:

java - 如何将 MOXy JAXB 指定为 Apache CXF 2.2.6 的 Apache CXF 实现

java - 如何以简洁的方式收集抛出异常的 Java 流操作的结果?

java - 如何识别偏好 Activity 中的偏好

c++ - 从 STL 集中删除最大元素

java - 如何在java中的笔记本电脑之间创建adhoc网络?

java - 在 java 中制作 3 x 3, 2d 数组

javascript - Expect 测试不适用于 ES6/ES2015 Set 对象

Python:看看一组是否完全包含另一组?

c++ - C++设置唯一性和顺序

cassandra - 如何存储唯一的 "Likes"或 "Views"或按比例设置?