Encontrar elemento en la lista vinculada
-
03-07-2019 - |
Pregunta
Si tengo una LinkedList de objetos de empleado ...
Cada empleado tiene un nombre y un campo de identificación.
He vinculado la lista de llamadas de la lista ...
Si quiero ver si la lista contiene un empleado, lo hago:
list.contains(someEmployeeObject)
¿Qué tal si quiero ver si la lista contiene un empleado basado en la identificación del imployee?
supongamos que tengo el siguiente método:
public boolean containsEmployeeByID(int id)
¿Cómo puedo saber si la lista contiene el objeto empleado con el ID del parámetro?
Solución
Simplemente recorra la lista y busque coincidencias. Si hace esto con frecuencia y cambia la lista con poca frecuencia, primero cree un índice de Mapa. ??
List<Employee> list = ...
for (Employee e : list)
if (e.getID() == id)
return true;
return false;
Dicho eso, ¿salvar empleados en una LinkedList? Qué extraño problema de ejemplo ...
Otros consejos
¿Quizás debería usar un mapa con la clave como ID y el valor como el nombre del empleado o el objeto del empleado?
Puede anular el método equals () para comparar en función del Id, sin embargo, esto no suele ser una práctica recomendada.
Otra opción es crear un HashMap y luego puede recuperar a sus empleados por su Id.
for (Employee empl : list) {
map.put(empl.getId(), empl);
}
String idLookup = "1234";
Employee employee = map.get(idLookup);