如何迭代SortedSet来修改其中的项目

nKo*_*ito 3 java iterator sortedset

我想说我有一个List.在for循环中修改list的项目没有问题:

for (int i = 0; i < list.size(); i++) { list.get(i).setId(i); }
Run Code Online (Sandbox Code Playgroud)

但是我有一个SortedSet而不是list.我怎么能用它呢?谢谢

NPE*_*NPE 5

首先,Set假设它的元素是不可变的(实际上,可变元素允许的,但必须坚持一个非常具体的合同,我怀疑你的类一样).

这意味着通常您不能像使用列表那样就地修改set元素.

支持的两个基本操作Set是添加和删除元素.可以将修改视为删除旧元素,然后添加新元素:

  1. 通过使用Iterator.remove(),您可以在迭代时处理删除;
  2. 您可以在单独的容器中累积添加内容并Set.addAll()在最后调用.