You can do it as follows:
object myApp {
def main(args: Array[String]) {
val myMap = new MyLinkedHashMap[Int,String]()
myMap.add(1, "a")
myMap.add(2, "b")
myMap.add(3, "c")
myMap.add(4, "d")
myMap.removeEldest
myMap.get(2)
myMap.removeEldest
}
}
class MyLinkedHashMap[K,V] {
import scala.collection.mutable.LinkedHashMap
var map = new LinkedHashMap[K, V]()
def add(key: K, value: V) {
map.put(key, value)
}
def removeEldest {
if (!map.isEmpty) {
map = map.drop(1)
}
}
def get(key: K): Option[V] = {
val value = map.remove(key)
if (value != None) {
map.put(key, value.get)
}
return value
}
}
source
share