想象一下简单的回合制游戏;有些球员各自都有自己的位置:
Map<Player,ModelPosition> modelPositions
GUI也有一个类似的像素位置
Map<Player,PixelPosition> guiPositions
每转几个球员都动了。我编制了一张只有那个移动的玩家的地图:
Map<Player,ModelPosition> movements
现在我想将这些动作传递给gui以更新移动的玩家PixelPosition
。像这样:
for(Player p in movements.keySet())
{
guiPositions[p] = modelToPixelConverter(movements[p]))
}
现在我的问题是如何有效地做到这一点。我可以通过循环Map.Entry(在Java中)或使用forEach(在Dart中)来稍微加快一点,但我真正的问题是我也没有迭代guiPosition。我觉得继续访问它而不迭代它是浪费的。我错了吗?
有没有办法在Java / Dart中实现?我也对这里的一般原则感兴趣。