我正在尝试使用这些方法但没有成功,如果有人可以帮助我,我会很高兴。 我正在使用groovy,我有2个字符串映射。 我想用线程匹配2个映射的字符串(使用gpars) 例如 : def firstMap = [“a”:“A”,“b”:“B”] def secondMap = [“c”:“C”,“a”:A“]
地图之间的正常平等方式是
fistMap.findAll().each { first ->
secondMap.findAll.each { second ->
if (first.key.equals(second.key) && (first.value.equlas(second.value))
//saveItIntoArray
}
}
我想用gpars线程来做,所以我尝试了:
withPool(2) {
runForkJoin(firstMap) { task ->
task.each {
secondMap.each {
//equals
}
forChild(?)
}
}
}
我对此有点新意,我真的不知道如何让它发挥作用。 我将不胜感激任何帮助。 谢谢, 或
答案 0 :(得分:2)
我建议使用并行集合:
def firstMap = ["a":"A", "b":"B"]
def secondMap = ["c":"C", "a":"A"].asImmutable()
withPool{
println firstMap.findAllParallel { fk, fv -> secondMap.findResult { sk, sv -> fk == sk && fv == sv ? [(fk):fv] : null } }
}