зацикливание Multimap внутри Multimap - PullRequest
0 голосов
/ 17 октября 2019

Я создал Integer и Multimap внутри 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

1 Ответ

2 голосов
/ 17 октября 2019

Вы можете flatMap это:

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