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?

¿Fue útil?

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top