如何使用Groovy从带有条件的映射中按数据从列表中获取对象并保存到另一个映射
正在寻找解决方案,如果对象字段以map值开头,如何将列表中的对象与map with condition中的数据进行匹配,并使用Groovy保存到另一个map 我有一些数据的地图如何使用Groovy从带有条件的映射中按数据从列表中获取对象并保存到另一个映射,groovy,Groovy,正在寻找解决方案,如果对象字段以map值开头,如何将列表中的对象与map with condition中的数据进行匹配,并使用Groovy保存到另一个map 我有一些数据的地图 Map<String, String> dataMap = new HashMap() dataMap.put("d1", "DATA1") dataMap.put("d2", "DATA2") dataMap.put("d3", "DATA3") 我的代码正在运行,但使用colle
Map<String, String> dataMap = new HashMap()
dataMap.put("d1", "DATA1")
dataMap.put("d2", "DATA2")
dataMap.put("d3", "DATA3")
我的代码正在运行,但使用collectEntries可能会有更优雅的变体:
list = new HashMap()
mapping = dataMap.each { key, v ->
elements.each { el ->
if (el.getField().startsWith(v)) {
list.put(key, el)
}
}
}
[d1=DATA1_text1, d2=DATA2_text2]
list = new HashMap()
mapping = dataMap.each { key, v ->
elements.each { el ->
if (el.getField().startsWith(v)) {
list.put(key, el)
}
}
}
dataMap.collectEntries{k,v->
[k,elements.find{e-> e.getField().startsWith(v)} ]
}.findAll{k,v-> v} //to keep only non empty values