如何使用Groovy从带有条件的映射中按数据从列表中获取对象并保存到另一个映射

如何使用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值开头,如何将列表中的对象与map with condition中的数据进行匹配,并使用Groovy保存到另一个map

我有一些数据的地图

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