假设我有一个列表。在for循环中修改列表的项目没有问题:
for (int i = 0; i < list.size(); i++) { list.get(i).setId(i); }
但我有一个 SortedSet 而不是列表。我怎样才能用它做同样的事情?
谢谢
首先,Set
假设它的元素是不可变的(实际上,可变元素are允许,但他们必须遵守非常具体的合同,我怀疑你们的班级会这样做)。
这意味着通常您无法像处理列表那样就地修改集合元素。
两个基本操作Set
支持是元素的添加和删除。修改可以被认为是删除旧元素,然后添加新元素:
- 您可以在迭代时通过使用来处理删除Iterator.remove() http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Iterator.html#remove%28%29;
- 您可以将添加的内容累积在单独的容器中并调用Set.addAll() http://docs.oracle.com/javase/6/docs/api/java/util/Set.html#addAll%28java.util.Collection%29在最后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)