object SortingIntegers{
  val size = 10000000;
  val rnd = new Random;

  type JLI = java.lang.Integer;

  val baseInts : Array[Int] = Array.fromFunction(i => rnd.nextInt)(size);
  val baseIntegers : Array[JLI] = baseInts.map(java.lang.Integer.valueOf)

  def ints = baseInts.toArray[Int];
  def integers = baseIntegers.toArray[JLI]

  import scala.util.Sorting;

  def inttime = {
    val start = System.currentTimeMillis;
    scala.util.Sorting.stableSort(ints, (x : Int, y : Int) => x < y)
    System.currentTimeMillis - start;
  }

  def integertime = {
    val start = System.currentTimeMillis;
    scala.util.Sorting.stableSort(integers, (x : JLI, y : JLI) => x.intValue < y.intValue)
    System.currentTimeMillis - start;
  }

  def main(args : Array[String]) = {
    println("Integers, Ints")
    var i = 0;
    while(i < 10){
      print(integertime);
      print(", ")
      println(inttime);
      i += 1;
    }
  }
}
