Codigo limpio y refactorización

Elegir la estructura de datos correcta es clave para optimizar rendimiento, mejorar la legibilidad y reducir errores.

🔹 Problema común: Usar estructuras inadecuadas que complejizan el código o reducen la eficiencia.
🔹 Solución: Seleccionar la estructura más eficiente según el caso de uso.


🔴 Ejemplo de mala práctica: Lista en lugar de Mapa

Ejemplo: Buscar información de empleados por ID

Se tiene una lista de empleados y se requiere encontrar a un empleado por su ID.

Mala práctica con una lista (ineficiente)

  • Complejidad O(n) (Búsqueda lineal).
  • Ineficiente si hay muchos empleados.
1import java.util.List;
2
3class Empleado {
4    int id;
5    String nombre;
6
7    public Empleado(int id, String nombre) {
8        this.id = id;
9        this.nombre = nombre;
10    }
11}
12
13public class Empresa {
14    public static Empleado buscarEmpleadoPorID(List<Empleado> empleados, int id) {
15        for (Empleado empleado : empleados) {
16            if (empleado.id == id) {
17                return empleado;
18            }
19        }
20        return null;
21    }
22}

Buena práctica: Usar un Mapa/Objeto en lugar de una Lista

  • Clave: ID del empleado
  • Valor: Datos del empleado
  • Ventaja: Búsqueda O(1) en lugar de O(n).
1import java.util.Map;
2import java.util.HashMap;
3
4public class Empresa {
5    private static Map<Integer, Empleado> empleados = new HashMap<>();
6
7    static {
8        empleados.put(1, new Empleado(1, "Juan"));
9        empleados.put(2, new Empleado(2, "Ana"));
10    }
11
12    public static Empleado buscarEmpleadoPorID(int id) {
13        return empleados.get(id);
14    }
15}

📌 Conclusión

  1. Listas (Arrays) son útiles cuando los datos deben mantenerse ordenados o si se recorren secuencialmente.
  2. Mapas (Diccionarios, Objetos) son más eficientes para búsquedas clave-valor.
  3. Elegir la estructura adecuada optimiza el rendimiento y la legibilidad del código. 🚀