Huba Geschrieben 31. Oktober 2012 Geschrieben 31. Oktober 2012 Moin, ich habe wieder eine Frage. Ich habe eine größere Aufgabe, darunter soll ich mit einer Methode in meiner Liste objekte anhand der Kundennummer löeschen. Heißt ich Soll den Kunden löschen die dazu bestehenden Konten und wenn kein Kunde zur Kundennummer gehört eine Fehlermeldung geben. Könnt ihr mir villeicht paar tipps geben?:new Hier mein anfang: /* public void loescheKunde(long kundennummer) { for(int i = 0; i < kunden.size(); i++) { if(kunden.get(i).getKundenNummer == kundennummer) { kunden.remove(); } else { System.out.println("Keinen Kunden unter der Kundennummer: " + kundennummer+ " gefunden!"); } } } */ Ich habe mir schonmal remove hingeschrieben da ich schon mir denken kann das ich dass brauche- Zitieren
Dragon8 Geschrieben 31. Oktober 2012 Geschrieben 31. Oktober 2012 Ich gehe mal davon aus, bei deiner Liste handelt es sich um eine ArrayList. Dann bist du mit der Methode remove() schonmal auf dem richtigen Weg. Wenn du nun noch einen kleinen Blick in die Java Dokumentation geworfen hättest, wäre dir dort aufgefallen, dass du der Methode einen Index für das zu löschende Element übergeben musst. PS: Hast du das nun nur flasch kopiert, oder ist getKundenNummer in deinem Kunden Objekt ein Attribut und keine Methode? Zitieren
Huba Geschrieben 31. Oktober 2012 Autor Geschrieben 31. Oktober 2012 ja eine arraylist, KundenNummer ist ein Attribut...... gesetzt mit getter und setter ich habe ja mehrere klassen, aber dann weis ich das ich schonmal auf einem richtigen weg bin... Danke ich habe nämlich vergessen das meine konten in einer anderen liste sind die ich noch zusätzlich durchlaufen muss bzw. hinzufügen. :floet: Da habe ich zu voreilige gefragt. Zitieren
Gast runtimeterror Geschrieben 1. November 2012 Geschrieben 1. November 2012 Falls das zur Debatte steht: Für deinen Anwendungsfall wäre ein Set (Menge) deutlich besser geeignet. Dies erlaubt keine Dubletten und hat bessere Laufzeiten bei Löschoperationen (und viele andere nützliche Dinge). Set<Long> kunden = new HashSet<>(); public void loescheKunde(long kundennummer) { if (!kunden.remove(kundennummer)) { System.out.println("Keinen Kunden unter der Kundennummer: " + kundennummer + " gefunden!"); } }[/PHP] Zitieren
Gast runtimeterror Geschrieben 1. November 2012 Geschrieben 1. November 2012 Noch was: du solltest beim Löschen von Elementen einer List immer rückwärts durchzählen. Teste dein Programm mal mit folgender Liste: { 1, 2, 3, 3, 3, 4, 5, 6 } und versuche mal die Kundennummer 3 zu löschen Man kann die Liste auch vorwärts durchlaufen, das ist aber unnötig komplizierter. Zitieren
Huba Geschrieben 1. November 2012 Autor Geschrieben 1. November 2012 Rückwerts durchlaufen?.... Hmm okey, werde ich mal testen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.