Scala中可变集合的迭代器?

Łuk*_*Lew 6 iterator scala scala-2.8

刚刚发现Java中有这样的迭代器.
Scala是否具有带有'set'和'remove'方法的迭代器,用于迭代(和修改)像array这样的可变集合?
如果没有这样的迭代器,那么有充分的理由吗?

Rex*_*err 6

Scala目前没有这样的迭代器.

我怀疑它不是因为

  • 这样的迭代器不是通用的(即它们仅可用于可变集合)但是使用命名空间.

  • 因为他们很快就会混淆思考与懒惰的操作一起思考takeWhile(它总是显而易见的x.takeWhile(_<5).add(5)应该做什么?一方面,操作的顺序似乎应该首先采取,然后添加;但另一方面,take是懒惰虽然add通常可以立即实施,所以将它们组合起来这将是天真的危险.)

  • 这样的迭代器在算法上只是一个很好的主意,有一组非常专业的集合(基本上只有链表和树;无论如何,添加和删除在数组上使用都是愚蠢的,并且在集合上没有多大意义).

  • 当普遍性和速度之间出现内在冲突时,Scala集合库通常倾向于普遍性.这种迭代器使您能够以更具体的方式考虑集合(即与底层数据结构更紧密地联系在一起).您可以想象一个库可以做出不同的选择,但对于一个最有用(但仍然非常高效)的库,Scala集合库理念可能是更好的方法.