我有一个事件数组列表,我想将它们转换为可变映射,其中一个事件值(日期)是键,每个键仅包含具有该日期的事件。以下是我的原始事件列表示例:
[Event(name="person 1", desc="hello", date="2021-01-05"),
Event(name="person 2", desc="hi", date="2021-01-05"),
Event(name="person 3", desc="hi", date="2021-01-08")]
通过迭代事件并每次添加键和事件,到目前为止我得到了这个结果:
{2021-01-05=[Event(name="person 1", desc="hello", date="2021-01-05"),
Event(name="person 2", desc="hi", date="2021-01-05"),
Event(name="person 3", desc="hi", date="2021-01-08")],
2021-01-08=[Event(name="person 1", desc="hello", date="2021-01-05"),
Event(name="person 2", desc="hi", date="2021-01-05"),
Event(name="person 3", desc="hi", date="2021-01-08")]}
下面的结果是我所需要的,但我不确定如何获得它。我试过过滤地图并再次迭代,但无法获得所需的结果。任何帮助将不胜感激。
{2021-01-05=[Event(name="person 1", desc="hello", date="2021-01-05"),
Event(name="person 2", desc="hi", date="2021-01-05")],
2021-01-08=[Event(name="person 3", desc="hi", date="2021-01-08")]}
答案 0 :(得分:1)
您可以为此使用 groupBy
:
val map = events.groupBy(Event::date).toMutableMap()