"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo convertir eficientemente una lista de Java en un mapa usando transmisiones y lambdas?

¿Cómo puedo convertir eficientemente una lista de Java en un mapa usando transmisiones y lambdas?

Publicado el 2025-03-24
Navegar:367

How Can I Efficiently Convert a Java List to a Map Using Streams and Lambdas?

Convertir java list para mapear con java 8 streams y lambdas

fondo:

converción de una lista de objetos a un mapa es una tarea común. Java 7 y abajo requieren una codificación imperativa utilizando un bucle for-ENTRA. En Java 8, el uso de transmisiones y lambdas proporciona una solución concisa y elegante.

java 7 solución:

private map namEmap (list opes) { mapa final hashmap = new Hashmap (); para (elección final de elección: opciones) { Hashmap.put (Choice.getName (), Choice); } devolver el hashmap; }
private Map nameMap(List choices) {
    final Map hashMap = new HashMap();
    for (final Choice choice : choices) {
        hashMap.put(choice.getName(), choice);
    }
    return hashMap;
}

Java 8 Solución sin guayaba:

aprovechando la clase de coleccionistas, la conversión se puede hacer en una sola operación de flujo:

map resultado = opciones.stream (). coleccionar (coleccions.tomap (Choice :: GetName, Function.Identity ()));
private Map nameMap(List choices) {
    final Map hashMap = new HashMap();
    for (final Choice choice : choices) {
        hashMap.put(choice.getName(), choice);
    }
    return hashMap;
}
aquí, Choice :: GetName recupera la clave de nombre, y function.Identity () conserva el valor.

Último tutorial Más>

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