Scala中可变集合的迭代器?

时间:2010-05-10 13:52:02

标签: scala iterator scala-2.8

just发现Java中有这样的迭代器 Scala是否具有带“set”和“remove”方法的迭代器 迭代(和修改)可变集合,如数组?
如果没有这样的迭代器,那么有充分的理由吗?

2 个答案:

答案 0 :(得分:6)

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

我怀疑它不是因为

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

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

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

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

答案 1 :(得分:1)

关于comp.lang.scala.user

上相同主题的主题
相关问题