shambalaxx
9/5/2016 - 7:52 PM

reordering3.scala

import scala.util.Random

def time[R](block: => R): R = {
  val t0 = System.nanoTime()
  val result = block // call-by-name
  val t1 = System.nanoTime()
  println("Elapsed time: " + (t1 - t0) + "ns")
  result
}



val SZ = 12
val columns = 1 to SZ map(i => s"column$i") toArray


val usersColumns = Random.shuffle(columns.toSet).take(6).toArray
println(usersColumns mkString ", ")

val reordering = usersColumns map columns.zipWithIndex.toMap

def reorder(values: Array[String]): Array[String] = {
  reordering map values
}

val values = 1 to SZ map(i => s"item$i") toArray

time {
  for (i <- 1 to 10) {
    println(reorder(values) mkString ", ")
  }
}