在时髦中转换地图的值

  • 本文关键字:地图 转换 groovy
  • 更新时间 :
  • 英文 :


假设我有一个地图Map<String, List<Integer>>

我想通过对嵌套列表的每一对键和元素应用convert()方法将此映射转换为Map<String, Map<Integer, Object>>

Object convert(String key, Integer value)

我怎样才能做到这一点?

我尝试了这样的事情:

map.collect { key, list ->
key: list.collectEntries {
[(element): convert(key, element)]
}
}

但我越来越ClassCastException: ArrayList cannot be cast to Map.

不是在电脑上,但要尝试

map.collectEntries { key, list ->
[key, list.collectEntries { element ->
[element, convert(key, element)]
}]
}

你可以稍微简化一下:

def convert = { it -> it + 1 };
Map<String, List<Integer>> map = [foo: [1, 2, 3], bar: [4, 5, 6]];
map.collectEntries { k, v -> [(k): v.collect { convert(it) }] }

最新更新