我正在讨论并修改地图(由一组现有物体制作):
public class Dispenser {
private Map<Ingredient, Integer> availableIngredients =
new EnumMap<Ingredient, Integer>(Ingredient.class);
public void orderSandwich(SandwichType sandwichType) {
Map<Ingredient, Integer> buffer =
new EnumMap<Ingredient, Integer>(availableIngredients);
for (Map.Entry<Ingredient, Integer> entry :
sandwichType.getIngredients().entrySet()) {
Integer currentUnits = buffer.get(entry.getKey());
buffer.put(entry.getKey(), currentUnits - entry.getValue());
}
availableIngredients.clear();
availableIngredients.putAll(buffer);
}
}
我想问,在这种情况下,是否有必要收集临时、方法-当地的资料buffer。 我指的是,它做的是罚款,但并不肯定它的好处。 我必须明确我的原始收集,并以缓冲收集的内容取而代之。 缓冲收集基本上是在循环内修改的实际地图。
由于没有缓冲收集(仅使用我的原始收集资料),因此,我很想知道,是否建议对 o采取某种做法?
许多人感谢就这方面的最佳做法提出任何建议。