如何从 Scala 中的元组列表构建多映射? [英] How to build a multimap from a list of tuples in Scala?

查看:40
本文介绍了如何从 Scala 中的元组列表构建多映射?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个元组列表List[(A, B)].将其转换为 multimap 的最佳方法是什么,将 A 映射到 Set[B]?我可以构建一个 immutable multimap 吗?

Suppose I have a list of tuples List[(A, B)]. What is the best way to convert it to a multimap, which maps A to Set[B]? Can I build an immutable multimap ?

推荐答案

我可以构建一个不可变的多映射吗?

Can I build an immutable multimap ?

不适用于 Scala 标准库中的 MultiMap.当然,你也可以自己写.

Not with the MultiMap in Scala standard library. Of course, you can write your own.

将其转换为多图的最佳方法是什么?

What is the best way to convert it to a multimap?

import scala.collection.mutable.{HashMap, Set, MultiMap}

def list2multimap[A, B](list: List[(A, B)]) = 
  list.foldLeft(new HashMap[A, Set[B]] with MultiMap[A, B]){(acc, pair) => acc.addBinding(pair._1, pair._2)}

这篇关于如何从 Scala 中的元组列表构建多映射?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆