In comparative genomics, the identification of orthologous genes [which are genes that are believed to have similar function] in two genomes is important in a variety of applications. The relationship between these genes from the two genomes can be 1:1, 1:M, M:1, and M:M. In Scala, I wrote this simple case class to represent a gene:
case class Gene(id: Int, protId: String, geneId: String)
and this function to do the mappings:
def orthologyMapping(genome1: Array[Gene], genome2: Array[Gene]): Vector[HashMap[Gene, Gene]] = { ...
I couldn't find in the documentation any built-in type for this specific type of collection of mapping relations. As you can see, orthologyMapping() return type is Vector[HashMap[Gene, Gene]], and that Vector contains a bunch of HashMap of 1:1 relationships.