所以我有一个带有数组列表的基本哈希图:
Map<Text, ArrayList<Text>> map = new HashMap<Text, ArrayList<Text>>();
说我有一个键值对:键:Apple,值:橙色,红色,蓝色
我已经了解了如何遍历以打印密钥,其值如下所示: 苹果,橙,红,蓝
但是有一种方法可以拆分值/通过内部ArrayList进行迭代,并分别打印键/值对3次/分别打印每个值的键,如:
Apple orange
Apple red
Apple blue
答案 0 :(得分:3)
您可以使用嵌套循环:
for (Map.Entry<Text, ArrayList<Text>> entry : map.entrySet()) {
for (Text text : entry.value()) {
System.out.println(entry.key() + " " + text);
}
}
答案 1 :(得分:3)
使用简单的for
循环,将是:
for (Map.Entry<Text, ArrayList<Text>> entry : map.entrySet()) {
for (Text text : entry.value()) {
System.out.println(entry.key() + " " + text);
}
}
以功能方式进行相同操作:
map.forEach((key, valueList) ->
valueList.forEach(listItem -> System.out.println(key + " " + listItem)
));