Encontrar elemento em LinkedList
-
03-07-2019 - |
Pergunta
Se eu tiver um LinkedList de Employee objetos ...
Cada funcionário tem um nome e um campos de identificação.
Eu tenho lista de chamadas LinkedList ....
Se eu quero ver se a lista contém um empregado eu faço:
list.contains(someEmployeeObject)
E se eu quero ver se a lista contém um empregado com base na identificação imployee ..
Vamos dizer que eu tenho o seguinte método:
public boolean containsEmployeeByID(int id)
Como posso saber se a lista contém o objeto empregado com o parâmetro id?
Solução
Basta caminhar na lista e olhar para os jogos. Se você fizer isso muitas vezes e alterar a lista infreqently, construir um índice Mapa primeiro.
List<Employee> list = ...
for (Employee e : list)
if (e.getID() == id)
return true;
return false;
Dito isto, poupando empregados em um LinkedList ?? Que exemplo problema estranho ...
Outras dicas
Talvez você deve estar usando um mapa com a chave ser um ID eo valor sendo o nome do funcionário ou o objeto empregado?
Você poderia substituir seus iguais () método para comparar com base na identificação, no entanto, isso geralmente não é uma prática recomendada.
Outra opção é criar um HashMap e então você pode recuperar seus funcionários pelo seu Id.
for (Employee empl : list) {
map.put(empl.getId(), empl);
}
String idLookup = "1234";
Employee employee = map.get(idLookup);