scala list foreach { (x) => map += x.length -> (map.getOrElse(x.length, Nil) ::: List(x)) }
import scala.collection.jcl;
object SolutionXX extends Application {
val list = "One" :: "Two" :: "Three" :: "Four" :: "Five" :: Nil
val map = new jcl.TreeMap[Int, List[String]]
list foreach { (x) => map += x.length -> (map.getOrElse(x.length, Nil) ::: List(x)) }
map foreach { (x) => x match { case (k, v) => printf("%d : %s\n", k, v.toString) } }
}