linkedhashset.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 50 行
SCALA
50 行
/* __ *\** ________ ___ / / ___ Scala API **** / __/ __// _ | / / / _ | (c) 2005-2008, LAMP/EPFL **** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **** /____/\___/_/ |_/____/_/ | | **** |/ **\* */// $Id: LinkedHashSet.scala 14144 2008-02-26 17:50:12Z michelou $package scala.collection.mutableobject LinkedHashSet { /** The empty map of this type */ def empty[A] = new LinkedHashSet[A] /** The canonical factory for this type */ def apply[A](elems: A*) = empty[A] ++ elems}@serializableclass LinkedHashSet[A] extends Set[A] with FlatHashTable[A] { private var ordered = List[A]() def contains(elem: A): Boolean = containsEntry(elem) def +=(elem: A) { add(elem) } def add(elem: A): Boolean = { if (addEntry(elem)) { ordered = elem :: ordered true } else false } def -=(elem: A) { remove(elem) } def remove(elem: A) : Boolean = removeEntry(elem) match { case None => false case Some(elem) => ordered = ordered.filter(_ != elem); true } override def clear() { ordered = Nil super.clear() } override def clone(): Set[A] = new LinkedHashSet[A] ++ this override def elements = ordered.reverse.elements}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?