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