em Java 8, uma tarefa comum é converter uma lista de objetos em um mapa usando fluxos e lambdas. Isso pode ser alcançado de várias maneiras, dependendo do comportamento desejado e da disponibilidade de bibliotecas de terceiros como a goiaba. Uma lista para um mapa envolveu iteração manual e um loop manuscrito:
mapa privado
private Mapguava com java 7nameMap(List choices) { final Map hashMap = new HashMap(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
mapa privado
guava com java 8 lambdas
alavancando java 8 lambdas simplifica o código ainda mais:
private MapnameMap(List choices) { return Maps.uniqueIndex(choices, new Function () { @Override public String apply(final Choice input) { return input.getName(); } }); }
colecionadores para o resgate
a classe de colecionadores de java 8 oferece uma implementação robusta para listas de mapeamento para maps. O coletor de tomap leva dois argumentos:
private Mapuma função do extrator de chave (uma função que recupera a chave para cada elemento)nameMap(List choices) { return Maps.uniqueIndex(choices, Choice::getName); }
uma função de extrator de valor (uma função que recupera o valor para cada um Element)
Neste caso, podemos usar o Choice :: getName e function.Identity () para recuperar a chave e o valor, respectivamente:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3