Tuples

Tag: Tuples

More Scala Groups And Tuples

Continuing from here, I have lists of tuples and I want to group them. Here I have a list of 4-tuples and I want to group the second tuple by the first. The fact that I need to do this probably represents some greater problem, but that is a story for another time

import shapeless._
import syntax.std.tuple._
import poly._

object GroupLists {
def group1TwoExtra[A,B,C,D](t : List[(A,B,C,D)]) : List[(A,List[B],C,D)] = {
      val map = LinkedHashMap[A, LinkedHashSet[B]]()
      val mapOther = scala.collection.mutable.Map[A,(C,D)]()
      for (i <- t) {
        val key = i.head
        map(key) = map.lift(key).getOrElse(LinkedHashSet[B]()) + i.drop(1).head
        mapOther += (key -> i.drop(2))
      }
      map.map(b => (b._1, b._2.toList) ++ mapOther(b._1)).toList
    }
Read more...