【发布时间】:2019-05-15 14:27:33
【问题描述】:
现在我有以下代码,它需要 2 个食谱并在食谱中找到重复项并“合并”它们。
public void mergeIngredients(Recipe recipe1, Recipe recipe2) {
Map<String, Ingredients> recipe1Map = recipe1.getIngredientsMap();
Map<String, Ingredients> recipe2Map = recipe2.getIngredientsMap();
for (Map.Entry<String, Ingredients> s : recipe1Map.entrySet()) {
if (recipe2Map.containsKey(s.getKey())) {
double newValue = recipe1.getAmount(s.getKey()) + recipe2.getAmount(s.getKey());
System.out.println(newValue);
}
}
}
我想更改此代码,因此我需要重构代码,以便它可以获取 N 个地图并比较所有地图,而不是只能相互检查 2 个地图。
示例: 用户输入了 8 个不同的食谱,它应该循环遍历所有这些并在发现重复时合并成分。实现这一目标的最佳方法是什么?
【问题讨论】: