gpt4 book ai didi

java - 如何在 foreach keySet() 中获取两个不同的键?

转载 作者:行者123 更新时间:2023-12-02 10:26:52 24 4
gpt4 key购买 nike

我想打印我的 HashMap“allDishes”的键。该 HashMap 包含一个 Dish 作为值。Dish 类有一个名为“Ingredients”的 HashMap 字段。

我想打印“allDishes”的键及其HashMap“Ingredients”的键。

使用 foreach keySet(),成分的关键是“null”,因为“Ingredient”中没有像“allDishes”中那样的值。是否有可能打印不同 HashMap 的键?

Map<String, Dish> allDishes = (Map<String, Dish>) application.getAttribute("allDishesHashMap");

for (String key : allDishes.keySet()) {
Map <String, String> Ingredient = allDishes.get(key).getIngredients();
out.println("<li><b>" + key + "</b> with: </li>" + Ingredient.get(key));
}

最佳答案

你做错了。

目前,您正在迭代 allDishes HashMap 的键。您想要做的是迭代 allDishes HashMap 的键并对于 allDishes HashMap 中的每个键,迭代 allDishes HashMap 中当前菜肴中包含的 Ingredient HashMap 的键。

为此,首先迭代 allDishes 条目集,然后迭代每个条目的成分 keySet。

这是一些代码:

final Map<String, Dish> dishMap = (Map<String, Dish>)application.getAttribute("allDishesHashMap");

for (final Map.Entry dishEntry: dishMap.entrySet())
{
final Map <String, String> ingredientMap = dishEntry.getIngredients();

out.println("<li><strong>" + dishEntry.getKey() + "</strong> Ingredients: <ul>");

for (final String ingredientName : ingredientMap.keySet())
{
out.println("<li>" + ingredientName + "</li>")
}

out.println("</ul></li>");
}

关于java - 如何在 foreach keySet() 中获取两个不同的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53889707/

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