Question

Si j'ai une liste d'objets d'Objet Linkedliste ...

Chaque employé possède un champ Nom et un identifiant.

J'ai une liste d'appels liés ....

Si je veux voir si la liste contient un employé, je le fais:

list.contains(someEmployeeObject)

Que diriez-vous si je veux voir si la liste contient un employé basé sur l'ID imployee?

Disons que j'ai la méthode suivante:

public boolean containsEmployeeByID(int id)

Comment savoir si la liste contient l'objet employé avec l'identificateur de paramètre?

Était-ce utile?

La solution

Il suffit de parcourir la liste et de rechercher des correspondances. Si vous le faites souvent et que vous modifiez la liste peu souvent, commencez par créer un index Map.

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

Cela dit, sauver les employés dans une LinkedList? Quel étrange exemple de problème ...

Autres conseils

Peut-être devriez-vous utiliser une carte avec la clé étant un identifiant et la valeur étant le nom de l'employé ou l'objet employé?

Vous pouvez redéfinir votre méthode equals () pour la comparer en fonction de son identifiant, mais il ne s'agit généralement pas d'une bonne pratique.

Une autre option consiste à créer une carte de hachage et à récupérer vos employés par leur identifiant.

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

String idLookup = "1234";

Employee employee = map.get(idLookup);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top