scala – 循环循环
发布时间:2020-12-16 09:15:09 所属栏目:安全 来源:网络整理
导读:我需要遍历一个列表,但循环的方式.我还需要在列表中添加新的元素,并遍历所有元素(旧的和新闻元素),我该怎么做?有没有数据结构? 解决方法 我想也许这是你想要的即使您正在迭代,也可以向列表中添加新元素.该代码是丑陋的,但它似乎工作. import scala.collect
我需要遍历一个列表,但循环的方式.我还需要在列表中添加新的元素,并遍历所有元素(旧的和新闻元素),我该怎么做?有没有数据结构?
解决方法
我想也许这是你想要的即使您正在迭代,也可以向列表中添加新元素.该代码是丑陋的,但它似乎工作.
import scala.collection.mutable.Queue class Circular[A](list: Seq[A]) extends Iterator[A]{ val elements = new Queue[A] ++= list var pos = 0 def next = { if (pos == elements.length) pos = 0 val value = elements(pos) pos = pos + 1 value } def hasNext = !elements.isEmpty def add(a: A): Unit = { elements += a } override def toString = elements.toString } 你可以这样使用: scala> var circ = new Circular(List(1,2)) res26: Circular[Int] = Queue(1,2) scala> circ.next res27: Int = 1 scala> circ.next res28: Int = 2 scala> circ.next res29: Int = 1 scala> circ.add(5) scala> circ.next res30: Int = 2 scala> circ.next res31: Int = 5 scala> circ res32: Circular[Int] = Queue(1,2,5) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |