我有以下代碼:未能添加鍵映射並聯
var res: GenMap[Point, GenSeq[Point]] = points.par.groupBy(point => findClosest(point, means))
means.par.foreach(mean => if(!res.contains(mean)) {
println("Map doesn't contain mean: " + mean)
res += mean -> GenSeq.empty[Point]
println("Map contains?: " + res.contains(mean))
})
使用這種情況下類:
case class Point(val x: Double, val y: Double, val z: Double)
基本上,代碼組中points
的Point
元件Point
周圍元素在means
。算法本身雖然不是很重要。
我的問題是,我得到了以下的輸出:
Map doesn't contain mean: (0.44, 0.59, 0.73)
Map doesn't contain mean: (0.44, 0.59, 0.73)
Map doesn't contain mean: (0.1, 0.11, 0.11)
Map doesn't contain mean: (0.1, 0.11, 0.11)
Map contains?: true
Map contains?: true
Map contains?: false
Map contains?: true
爲什麼我會永遠得到這個?
Map contains?: false
我正在檢查密鑰是否在res
地圖中。如果不是,那我就加入它。 那麼它如何不能出現在地圖中呢?
是否存在並行性問題?
這個問題是否發生在沒有使用並行化的情況下? – Samar