Domanda

Se possiedo un LinkedList di oggetti Employee ...

Ogni dipendente ha un campo Nome e ID.

Ho un elenco di chiamate di LinkedList ....

Se voglio vedere se l'elenco contiene un dipendente, lo faccio:

list.contains(someEmployeeObject)

Che ne dici se voglio vedere se l'elenco contiene un dipendente basato sull'ID dell'impiegato ..

diciamo che ho il seguente metodo:

public boolean containsEmployeeByID(int id)

Come posso sapere se l'elenco contiene l'oggetto impiegato con l'id parametro?

È stato utile?

Soluzione

Basta scorrere l'elenco e cercare le corrispondenze. Se lo fai spesso e cambi di rado l'elenco, crea prima un indice della mappa.

List<Employee> list = ...
for (Employee e : list)
   if (e.getID() == id)
      return true;
return false;

Detto questo, salvare i dipendenti in una LinkedList ?? Che strano problema di esempio ...

Altri suggerimenti

Forse dovresti usare una mappa con la chiave come ID e valore come nome dell'impiegato o oggetto dell'impiegato?

Potresti sovrascrivere il tuo metodo equals () per confrontare in base a Id, tuttavia questa in genere non è una buona pratica.

Un'altra opzione è quella di creare una HashMap e quindi è possibile recuperare i dipendenti in base al loro ID.

for (Employee empl : list) {
    map.put(empl.getId(), empl);
}

String idLookup = "1234";

Employee employee = map.get(idLookup);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top