Создайте список хеширования в scala, используя Map - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь создать карту в scala

var map1:Map[String,List[String]] из списка кортежей

input : List(("a1",1),("a1",2),("b1",3),("c1",2),("c1",3),("c1",4))

def fn(List[String]):, который принимает входные данные как Список кортежей и глобально объявленная карта обновляется, и, наконец, получается карта со списками значений.

1 Ответ

0 голосов
/ 11 июля 2020

Вот код для вашего logi c, который принимает список кортежей в качестве входных данных и возвращает значение Map со списком ключей и значений.

import scala.collection.immutable._

//function which accepts List of Tuples and returns Map
def convertListToMap(inputParam:List[(String, Int)]) : Map[String,List[Int]]={
  inputParam.groupBy(_._1).mapValues(_.map(_._2))
}

//List of Tuples as inputs
val input=List(("a1",1),("a1",2),("b1",3),("c1",2),("c1",3),("c1",4))
//List((a1,1), (a1,2), (b1,3), (c1,2), (c1,3), (c1,4))

//invoking convertListToMap
convertListToMap(input)
//Output:  Map(a1 -> List(1, 2), c1 -> List(2, 3, 4), b1 -> List(3))

// remaining logic to proceed further
...