【问题标题】:looping Multimap inside Multimap在 Multimap 内循环 Multimap
【发布时间】:2019-10-17 14:13:05
【问题描述】:

我在 Multimap 中创建了 Integer 和 Multimap,我试图循环获取键和值。但是对于 Multimap,它以数组形式返回,我无法删除数组并仅获取 int。

这是我的代码

public static void main(String[] args) throws ParseException {

    Multimap<Integer, Integer> linkedHashMap3 = LinkedListMultimap.create();
    linkedHashMap3.put(1, 2);

    Multimap<Integer, Multimap<Integer, Integer>> linkedHashMap2 = LinkedListMultimap.create();
    linkedHashMap2.put(3, linkedHashMap3);

    for (Entry<Integer, Multimap<Integer, Integer>> st : linkedHashMap2.entries()) {

        System.out.println(st.getValue().keySet());//1
        System.out.println(st.getValue().values());//2
        System.out.println(st.getKey());//2
    }
}

现在的结果

 [1]
 [2]
   3

但我希望结果是:

 1
 2
 3

【问题讨论】:

    标签: java dictionary java-8 java-stream multimap


    【解决方案1】:

    你可以flatMap它:

    st.values().stream()
        .flatMap(innerMap -> innerMap.values().stream())
        .collect(Collectors.toList());
    

    【讨论】:

    • stream() 在 Multimap 中不可用
    • @Arsenal 是的,应该是价值观,我的错
    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2013-02-27
    • 2015-04-30
    • 2011-09-08
    相关资源
    最近更新 更多