Guest User

Untitled

a guest
Dec 13th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. import scala.collection.mutable
  2.  
  3. type KeyType = Long
  4.  
  5. def grouping(xs: mutable.Map[KeyType, Option[String]], box: Int): List[List[(KeyType, Option[String])]] = {
  6. (for ((x, count) <- xs.toList.zipWithIndex) yield (count, x)).groupBy(x => x._1 % box).map(x => x._2.map(c => c._2)).toList
  7. }
  8.  
  9. def mergeGroup(xs: List[List[(KeyType, Option[String])]]): mutable.Map[KeyType, Option[String]] = {
  10. def flatten(ls: List[_]): List[_] = ls flatMap {
  11. case i: List[_] => flatten(i)
  12. case e => List(e)
  13. }
  14. collection.mutable.Map(flatten(xs).map{case(k, v) => (k, v)}: _*).asInstanceOf[mutable.Map[KeyType, Option[String]]]
  15. }
  16.  
  17. val xs: mutable.Map[KeyType, Option[String]] = mutable.Map(
  18. (24, Some("flag")),
  19. (83, Some("setup")),
  20. (89, Some("fighter")),
  21. (94, Some("curiosities")),
  22. (114, Some("strong")),
  23. (133, Some("brutish")),
  24. (177, Some("blockade")),
  25. (247, Some("fort")),
  26. (299, Some("bad")),
  27. (302, Some("burial")),
  28. (317, Some("contestant")),
  29. (329, Some("anonymous")),
  30. (337, Some("cube")),
  31. (341, Some("elimination")),
  32. (345, Some("contractual")),
  33. (434, Some("everlasting")),
  34. (445, Some("daydreamer")),
  35. (468, Some("femur")),
  36. (475, Some("decipherer")),
  37. (479, Some("serpent")),
  38. (602, Some("chain")),
  39. (604, Some("rum")),
  40. (612, Some("terminus")),
  41. (623, Some("degrading")),
  42. (640, Some("loneliness")),
  43. (649, Some("blob")),
  44. (685, Some("land")),
  45. (692, Some("confidential")),
  46. (696, Some("herd")),
  47. (699, Some("beyond"))
  48. )
  49.  
  50.  
  51. val groupedData: List[List[(KeyType, Option[String])]] = grouping(xs, 5)
  52. groupedData.map(println)
  53.  
  54. val mergedData: mutable.Map[KeyType, Option[String]] = mergeGroup(groupedData)
  55.  
  56. println(xs)
  57. println(mergedData)
Add Comment
Please, Sign In to add comment