Java 8 convertido Map <K, List <V >> para Map <V, List <K >>

Terraço Velykyy:

Eu preciso converter Map<K, List<V>>para Map<V, List<K>>. Eu estive lutando com essa questão há algum tempo.

É óbvio como fazer a conversão Map<K, V>para Map<V, List<K>>:

.collect(Collectors.groupingBy(
     Map.Entry::getKey, 
     Collectors.mapping(Map.Entry::getValue, toList())
)

Mas eu não posso encontrar resolver um problema inicial. Existe alguma maneira fácil de pronto-a-java-8 para fazê-lo?

Eugene:

Eu acho que você estava perto, você teria que flatMapessas entradas para um Streame recolher de lá. Eu usei o já presente SimpleEntry, mas você pode usar um Pairde algum tipo também.

initialMap.entrySet()
          .stream()
          .flatMap(entry -> entry.getValue().stream().map(v -> new SimpleEntry<>(entry.getKey(), v)))
          .collect(Collectors.groupingBy(
               Entry::getValue,
               Collectors.mapping(Entry::getKey, Collectors.toList())
         ));

Bem, se você não quiser criar a sobrecarga extra desses SimpleEntrycasos, você poderia fazê-lo um pouco diferente:

    Map<Integer, List<String>> result = new HashMap<>();

    initialMap.forEach((key, values) -> {
        values.forEach(value -> result.computeIfAbsent(value, x -> new ArrayList<>()).add(key));
    });

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Java 8 Streams: faça Collectors.groupingBy retornar Map <K, List <V>> em vez de Map <K, List <List <V> >>

Java 8 Streams: faça Collectors.groupingBy retornar Map <K, List <V>> em vez de Map <K, List <List <V> >>

How to convert List<Map<K,V>> into Map<K,List<V>> In java

Java 8 List <V> em Map <K, V> com função

Como transformar List <T> em List <Map <K, V >> usando Lambda em JAVA8

Como converter List <V> para Map <K, List <V >>, com o Java 8 córregos e personalizados Lista e Mapa fornecedores?

Convert List of List of Elements to Map < K, List<V>>

Optimal way to transfer values from a Map<K, V<List>> to a Map<otherKey, otherValue<List>>

Mapa <K, V> Voltar ao mapa <V, Map <K, V >> após valor groupingBy, em vez de Map <Obj, List <Entry <K, V >>>

Kotlin Existe uma maneira de nivelar Map <K out T, List <V out T> para List <T>

Fonction Java 8 qui prend un List <V> et renvoie un HashMap <K, List <V>>

Função Java 8 que recebe um List <V> e retorna um HashMap <K, List <V>>

Erro de Java - O tipo List <E> não é visível - O tipo Map <K, V> não é visível

Erro de Java - O tipo List <E> não é visível - O tipo Map <K, V> não é visível

Converter Set <Map.Entry <K, V >> para HashMap <K, V>

Extraindo Map <K, Multiset <V >> de Stream de fluxos em Java 8

Lista Java 8 <V> no Mapa <K, V>

Listar <Objeto []> para mapear <K, V> em java 8

Java Map <K, V>: Por que get (object) não get (K)?

Processe std :: map <K, V> e std :: map <K, V *> de maneira semelhante

Java: Map.of<"k1", "v1"> vs Collections.singletonMap("k1", "v1")

Lista Java 8 <T> no Mapa <K, V>

Como converter List to Map <T, <K, List <Person> >> use java lambda?

No Java 8, como faço para transformar um mapa <K, V> em outro mapa <K, V> usando uma lambda?

Como inicializar um Map <K, Map <K, V >> em uma única linha

Converter List <T> para Map <T, U> usando Java 8

Por que Map <K, V> não estende a Função <K, V>?

Axon - How to get @QueryHandler handle method to return a k,v Map

Map <String, Map <String, Carro >> para List <Car> usando Java 8

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo