Finden element in der LinkedList
Wenn ich eine LinkedList von Employee-Objekten...
Jeder Mitarbeiter hat einen Namen und eine ID-Felder.
Ich habe linkedList call-Liste....
Wenn ich will, um zu sehen, ob die Liste enthält einen Mitarbeiter-ich:
list.contains(someEmployeeObject)
Wie wäre es, wenn ich sehen wollen, wenn die die Liste enthält einen Mitarbeiter auf der Grundlage der imployee-ID.
sagen wir, ich habe die folgende Methode:
public boolean containsEmployeeByID(int id)
Wie kann ich wissen, ob die Liste enthält die Mitarbeiter-Objekt mit dem parameter id?
Hinweis LinkedList lese-performance ist nicht so toll. Auch get(int) ist langsam. ArrayList ist fast immer eine bessere Idee.
InformationsquelleAutor user69514 | 2009-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur zu Fuß durch die Liste und suchen Sie nach übereinstimmungen. Wenn Sie dies zu oft, und ändern Sie die Liste infreqently, bauen Sie eine Zuordnung index-ersten.
Sagte, speichern die Mitarbeiter in einer LinkedList?? Was für ein seltsames Beispiel problem...
Dann um ehrlich zu sein, sollten Sie tag die Frage als Hausaufgabe. Ich habe es getan für Euch, dieses mal...
stimmt, nur bei den Hausaufgaben, jemand würde eventuell halten, Mitarbeiter-Datensätze in einer verknüpften Liste 🙂
InformationsquelleAutor Chris Dolan
Vielleicht sollten Sie mit Hilfe einer Karte mit dem key eine ID und Wert wird der name des Mitarbeiters oder der Mitarbeiter-Objekt?
In der Tat. Behoben........................
Aber natürlich bauen Sie die Karte, die Sie brauchen, um zu gehen die LinkedList...
InformationsquelleAutor Joe Phillips
Könnten Sie überschreiben Ihr equals () - Methode zu vergleichen, basierend auf Id, aber diese Regel ist nicht best practice.
Weitere Möglichkeit ist die Erstellung einer HashMap und dann Sie abrufen können Ihre Mitarbeiter durch Ihre Id.
InformationsquelleAutor zmf