例如,假设我想要一个包含0到最多1000个元素的列表.在此之上,应首先丢弃最旧的插入.集合本身是否支持此功能?如果不是,我将如何进行实施?我知道列表上的某些操作非常慢,所以我可能需要不同的数据类型?
查看元素不应该影响列表.我只想插入和大小操作.
这是我的第一个传递实现,以防其他人发现它有用
import scala.collection._
import mutable.ListBuffer
class FixedList[A](max: Int) extends Traversable[A] {
val list: ListBuffer[A] = ListBuffer()
def append(elem: A) {
if (list.size == max) {
list.trimStart(1)
}
list.append(elem)
}
def foreach[U](f: A => U) = list.foreach(f)
}
Run Code Online (Sandbox Code Playgroud)
听起来你想要一个大小有限的队列.这是一个类似的问题:scala队列的最大长度
该问题提出了三种解决方案.您可以,
Queue.