在多图内循环多图

问题描述 投票:0回答:1

我已经在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 java-8 guava multimap
1个回答
1
投票

您可以flatMap

st.values().stream()
    .flatMap(innerMap -> innerMap.values().stream())
    .collect(Collectors.toList());
© www.soinside.com 2019 - 2024. All rights reserved.