Groovy 要映射的映射列表不工作
我有一张地图 [“名称1”:[“字段1”:值1,“字段2”:值2,“字段3”:值3], “名称2”:[“字段1:值4”,“字段2:值5”,“字段3:值6], “名称3”:[“字段1”:值7,“字段2”:值8,“字段3”:值9]] 和一份清单 [名称1,名称3] 我想要一个结果 [“名称1”:[“字段1”:值1,“字段2”:值2,“字段3”:值3], “名称3”:[“字段1”:值7,“字段2”:值8,“字段3”:值9]] 使用的代码Groovy 要映射的映射列表不工作,groovy,Groovy,我有一张地图 [“名称1”:[“字段1”:值1,“字段2”:值2,“字段3”:值3], “名称2”:[“字段1:值4”,“字段2:值5”,“字段3:值6], “名称3”:[“字段1”:值7,“字段2”:值8,“字段3”:值9]] 和一份清单 [名称1,名称3] 我想要一个结果 [“名称1”:[“字段1”:值1,“字段2”:值2,“字段3”:值3], “名称3”:[“字段1”:值7,“字段2”:值8,“字段3”:值9]] 使用的代码 result = recomendationOffers.inj
result = recomendationOffers.inject( [:] ) { m, v ->
if( !m[ v ] ) {
m[ v ] = []
}
m[ v ] << tariffRecMap[ v.toString() ]
m
}
result=recomendationOffers.inject([:]){m,v->
如果(!m[v]){
m[v]=[]
}
m[v]
现在名称1的数据类型从Varchar2(35)更改为数字(10)……同时,1000000959等值显示为1.000000959E9,这有什么区别吗
是的,世界上所有的差异都存在。这意味着您正在将一个双精度
(很可能)转换为字符串,并且由于字符串“1000000959”
不等于“1.000000959E9”
,因此您无法获得匹配项
不确定哪些位是双精度位,哪些位是字符串……也许你可以用一个实际的例子来展开
此外,您的注入方法可以替换为:
def result = tariffRecMap.subMap( recomendationOffers )
您好,Tim,谢谢您的回复。这对1.5.6版有效吗?或者我应该使用一些字符串转换吗?@user3433227您是否更改了用户名?subMap
已经存在。我不确定您有什么,或者您需要什么,因为问题中没有类似的双精度,这只是一个工作示例Hi Tim,我无法访问我的previo美国帐户:-(因此必须创建一个新帐户。我将从我的末端开始尝试,如果尝试不成功,我将返回给您。CheersHi Tim,我如何在groovy中将1.000000959E9转换为1000000959?可能我将用我的值编辑我的问题…嗨,Tim,用原始值编辑了问题,请看一看