en Java 8, una tarea común es convertir una lista de objetos en un mapa usando flujos y lambdas. Esto se puede lograr de varias maneras, dependiendo del comportamiento deseado y la disponibilidad de bibliotecas de terceros como Guava.
Java 7 y el siguiente enfoque
tradicionalmente, mapeo Una lista en un mapa involucrado iteración manual y un bucle escrito a mano:
private MapnameMap(List choices) { final Map hashMap = new HashMap(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
soluciones basadas en guava
Guava proporciona un método conveniente, maps.uniqueindex, para generar mapas de listas basadas en un extractor de clave especificado. ]
Guava con java 7 private Map
private Mapcoleccionistas al rescatenameMap(List choices) { return Maps.uniqueIndex(choices, new Function () { @Override public String apply(final Choice input) { return input.getName(); } }); }
La clase de coleccionistas de Java 8 ofrece una implementación sólida para mapear listas a los mapas. El colector Tomap toma dos argumentos:
una función de extractor clave (una función que recupera la clave para cada elemento)
private Mapuna función de extractor de valor (una función que recupera el valor para cada uno elemento)nameMap(List choices) { return Maps.uniqueIndex(choices, new Function () { @Override public String apply(final Choice input) { return input.getName(); } }); }
En este caso, podemos usar elección :: getName y function.identity () para recuperar la clave y el valor, respectivamente:
map
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3