Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy 根据条件将一个贴图的值设置为另一个贴图的值_Groovy - Fatal编程技术网

Groovy 根据条件将一个贴图的值设置为另一个贴图的值

Groovy 根据条件将一个贴图的值设置为另一个贴图的值,groovy,Groovy,我有两张唱片rec1和rec2 两者都有一个共同的键/值名称1 当两个记录中的name1相等时,我需要将rec2的几个值设置为rec1 我将它们放入两个不同的循环中,如下所示 rec1.each{r1-> each rec2.each{r2-> each if(r2.name1 == r1.name1){ r1.name2 = r2.name2 r1.name3 = r2.name3 } } } 有没有

我有两张唱片rec1和rec2

两者都有一个共同的键/值名称1

当两个记录中的name1相等时,我需要将rec2的几个值设置为rec1

我将它们放入两个不同的循环中,如下所示

rec1.each{r1-> each
    rec2.each{r2-> each
        if(r2.name1 == r1.name1){
        r1.name2 = r2.name2
        r1.name3 = r2.name3
        }
    }
}
有没有更好的办法

示例:(对不起,我只是在粘贴内容)

记录:[“通道”:入站,“库存水平”:2410.0, “报价单编号”:FBUN-MVP-VME-VIRGIN-31-24-04,“报价单编号”:P4-6, “合同长度”:24.0,“奖励分数”:10.0, “手机识别码”:SAM-STD-I9300-1,“客户类型”:媒体]]

记录:[“媒体补贴值”:0.0,“信用等级”:C5, “DOM_OTHER_MARGIN”:0.0,“isBatchTerminator”:false, “通话组描述”:组合,“DM”:20.0,“黑莓工业”:N, “首选黑莓”:N,“错误ID”:0,“客户类型”:媒体, “关税税率”:30.99,“最常用税率”:35961404,“形式系数”:空, “摄像机识别号”:空,“新边缘”:22.272501,“型号”:空, “IS_MMS_余量”:N,“有效手机带”:, “客户超出限额计划”:JV15,“OOB DOM DOU VOICE”:0.0, “OOB_DOM_SMS”:0.0,“VM_客户标志”:Y,“IB_数据”:0.0, “频道标志”:入站,“短信余量”:5000.0,“漫游短信余量”:0.0, “资费描述”:30.99维珍媒体24个月+1GB 1300分钟, “利润率变化百分比”:0.12691319,“报价/报价/津贴”:600, “MAKE”:null,“IS_ONNET_amount”:Y,“OFFER_CONTRACT_TERM”:24.0, “首选分钟数”:1300,“网络首选分钟数”:Y, “最常用”IMEI:359614048625860,“折扣”:3.0, “NetPresentValue”:1.15,“RecInd”:1,“WIFI\u IND”:null,“IPHONE\u IND”:N, “报价单ID”:FBUN-MVP-VME-VIRGIN-31-24-04, “激励点”:-1.0]


当两个记录中的OFFER_-tarrium_-ID相同时,我想设置第一个记录到第二个记录的几个值,您不需要迭代两个映射。只需要检查特定键的值是否匹配

if(r2.'OFFER_TARIFF_ID' == r1.'OFFER_TARIFF_ID'){
  //push the required entries from r1 to r2
}

虽然在您的编辑中,我没有看到记录的有效数据结构,但我认为r1和r2是映射。

您能给出一些示例输入和预期输出吗?当然,将编辑我的问题。我也对您之前回答的一个问题进行了评论…请您再次检查,这不是有效的Groovy…我指的是一个我可以运行,也许可以减少一些,这样我们就可以看到正在发生的事情…还有,预期的输出…它对我来说很有效,只是在寻找更好的实现方法,谢谢Tim。谢谢你的回复