import scala.collection.mutable
import scala.collection.mutable._
import scala.util.Random
object Main {
class UpsellProducts()
{
var productDict = new mutable.HashMap[Int, Int]()
var productList = new ArrayBuffer[Int]()
val rand = new Random()
def insertProduct(prod: Int): Boolean = {
if (productDict.contains(prod))
return false
productDict(prod) = productList.size
productList += prod
true
}
def removeProduct(prod: Int): Boolean = {
if (!productDict.contains(prod))
return false
val last = productList(productList.size - 1)
val index = productDict(prod)
productList(index) = last
productDict(last) = index
productList.remove(productList.size - 1)
productDict.remove(prod)
true
}
def getRandomProduct = productList(rand.nextInt(productList.size))
}
def main(args: Array[String]): Unit = {
var dataset = new UpsellProducts()
dataset.insertProduct(1212)
dataset.insertProduct(190)
dataset.insertProduct(655)
dataset.insertProduct(327)
println(dataset.getRandomProduct)
dataset.removeProduct(190)
dataset.removeProduct(1212)
println(dataset.getRandomProduct)
}
}