【问题标题】:Iterate through a hashmap with an arraylist?使用数组列表遍历哈希图?
【发布时间】:2019-03-11 14:47:19
【问题描述】:

所以我有一个带有数组列表的基本哈希图:

Map<Text, ArrayList<Text>> map = new HashMap<Text, ArrayList<Text>>();

假设我有一个键值对:键:Apple,值:橙色、红色、蓝色

我已经了解如何遍历以打印密钥及其值,如下所示: 苹果、橙、红、蓝

但是有没有办法分解值/遍历内部 ArrayList 并分别打印键/值对三次/分别打印每个值的键,例如:

Apple orange
Apple red
Apple blue

【问题讨论】:

标签: java for-loop hashmap


【解决方案1】:

使用简单的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)
));

【讨论】:

    【解决方案2】:

    您可以使用嵌套循环:

    for (Map.Entry<Text, ArrayList<Text>> entry : map.entrySet()) {
        for (Text text : entry.value()) {
            System.out.println(entry.key() + " " + text);
        }
    }
    

    【讨论】:

    • 这还不只是显示每个键的完整值列表吗?
    • @JaneDow 不,每一行都会有数组列表中的键和一个值。
    猜你喜欢
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 2021-01-28
    • 2012-08-22
    相关资源
    最近更新 更多