gpt4 book ai didi

java - 在java中迭代和修改集合时创建临时缓冲区的优点

转载 作者:行者123 更新时间:2023-11-30 05:15:04 24 4
gpt4 key购买 nike

我正在迭代并修改映射(从现有的枚举对象组创建),如下所示:

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);
}
}

我想问在这种情况下是否需要临时的、方法本地的缓冲区集合。我的意思是,它工作得很好,但不确定它的好处。我必须清除原始集合并将其替换为缓冲区集合的内容,这基本上是在循环内修改的实际映射。

因为,它在没有缓冲区集合的情况下工作得很好(仅使用我的原始集合),我想知道是否推荐一种方法而不是其他方法以及为什么。

非常感谢您提供有关这方面最佳实践的建议。

最佳答案

您不需要缓冲区 map 。您可以改为使用可用成分进行操作。一切都会好起来的。没有无用的开销。

关于java - 在java中迭代和修改集合时创建临时缓冲区的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1757529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com