【发布时间】:2020-10-01 06:20:42
【问题描述】:
我有一个像这样记录的地图列表
List(Map(id => 123, Date => 2020.04.01, Value => abc),
Map(id => 123, Date => 2020.04.03, Value => def),
Map(id => 456, Date => 2020.04.04, Value => eee),
Map(id => 456, Date => 2020.04.02, Value => bcd))
我想将其转换为如下内容以供进一步处理:
Map(id => 123, TreeMap(Date=>2020.04.01, Value => abc; Date=>2020.04.03, Value => def);
id => 456, TreeMap(Date=>2020.04.02, Value => bcd; Date=>2020.04.04, Value => eee))
我有以下代码可以做到这一点:
val result = mutable.Map[String, mutable.TreeMap[String, String]]();
list.foreach(m => {
val id = m("id")
if (!result.contains(id))
result += id -> mutable.TreeMap.empty[String, String]
result(id) += m("date") -> m("value")
})
只是想知道是否有一些聪明的方法可以做到这一点?我知道有 toMap() 方法,但不确定如何在 toMap 方法中初始化 TreeMap。
【问题讨论】:
-
TreeMap在您的示例中包含重复键。
标签: scala