我在后处理中有逻辑来处理设备和文件的值,如下所示:(将其从映射更改为设置,因为它会覆盖这些值)
def deviceFiles = devices.inject([] as Set) { deviceFiles, device ->
def v = device.key.split( /\./ )[0]
deviceFiles << [ (device.value), files[ v ] ]
}
输出:设备文件:[[宏碁C6,俄罗斯方块.apk],[摩托罗拉Droid Milestone,俄罗斯方块.apk],[宏碁C6,模拟人生3.apk],[HTC Desire,模拟人生3.apk]] --- 看起来很好展示
这些值需要作为映射/属性传递,以便数据可以正确显示而不会出现任何强制转换异常,这是我发现很困难的。
当它通过集合循环时
deviceFiles.each { device ->
mapping.put("${device}", "${file}")
}
输出结果: 映射:[HTC Desire:TheSims3.apk, Motorola Droid Milestone:Tetris.apk, Acer C6:Tetris.apk] -- 这不正确(Acer C6:TheSims3.apk已被覆盖)。
我是否错过了将期望值发送到映射中的步骤?或者说无法通过map发送set的值(因为当我遍历设备时,map总是消除重复项)???