Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Muss eine Liste von Strings invertieren, das heisst aus ("a","b","c") soll ("c","b","a") werden.
Was der Methode übergeben wird, ist allerdings eine Simplelist. Laut Angabe soll der Zugriff auf diese SimpleList nur mit den Methoden public String removeLast() und public void addFirst(String s) möglich sein.
Mein Ansatz gibt Nullpointerexception.
das letzte Listenelement aus der Liste entfernt ;-)
Das heisst u.a. dass bei jeder Prüfung auf null ein Listenelement aus der Liste entfernt und komplett verworfen wird. Bedeutet, dass Du mit dem Code n/2 +1 Elemente aus der ursprünglichen Liste wegwirfst und im ungüstigen Fall am Ende eine NullPointExc erhälst, da die Liste ja bereits leer ist.
ok danke, aber wie könnte man das anders überprüfen? So etwas wie .get() geht ja nicht.
Wie kann man die liste überhaupt "umwandeln" in die invertierte liste?
Nur zur Info:
public String removeLast()
vermutlich wird dir der String welcher rausgeworfen/gelöscht wurde hier zurückgegeben, vlt hilft dir das ja weiter
Wie kann man die liste überhaupt "umwandeln" in die invertierte liste?
Nur zur Info:
public String removeLast()
vermutlich wird dir der String welcher rausgeworfen/gelöscht wurde hier zurückgegeben, vlt hilft dir das ja weiter
ja, removeLast() gibt den entfernten String zurück, und wenn die liste leer ist gibt es null zurück.
Mit while(!list.removeLast().equals(null)) wollte ich also sagen: mach weiter bis die liste leer ist.
Geht aber nicht.
Das zweite hab ich so gemeint: die methode ist void, gibt also keine invertierte liste zurück. muss man auf die liste zugreifen und diese ändern?
ja, removeLast() gibt den entfernten String zurück, und wenn die liste leer ist gibt es null zurück.
Mit while(!list.removeLast().equals(null)) wollte ich also sagen: mach weiter bis die liste leer ist.
Geht aber nicht.
Ja stimmt, die liste wird durch diese aufrufe ohnehin verändert.
Problem ist nur, wenn man den letzten String nimmt(removeLast) und dann an die erste stelle haut(addFirst), und dass für alle, hatt man am ende wieder die gleiche liste.
Ja stimmt, die liste wird durch diese aufrufe ohnehin verändert.
Problem ist nur, wenn man den letzten String nimmt(removeLast) und dann an die erste stelle haut(addFirst), und dass für alle, hatt man am ende wieder die gleiche liste.
Problem ist nur, wenn man den letzten String nimmt(removeLast) und dann an die erste stelle haut(addFirst), und dass für alle, hatt man am ende wieder die gleiche liste.
ein kleiner trick ist da schon dabei ;-)
für den anfang, könnte man aber auch dir einträge in einer (array)liste zwischenspeichern und mittels dieser die ursprüngliche liste wieder füllen.
Du hast doch vorhin selbsr festgestellt dass die Methode invert void also nichts zurückgibt, wieso willst du das dann in ein boolean pressen? :bahnhof:
Du hast doch vorhin selbsr festgestellt dass die Methode invert void also nichts zurückgibt, wieso willst du das dann in ein boolean pressen? :bahnhof:
Vielleicht hilft's ja die Aufgabenstellung zu posten.
Vielleicht noch als Hinweis: Wenn Ihr noch keine Rekursion durchgenommen habt, könnte der Prof etwas mistrauisch werden, falls Du eRaaaas abgeben solltest.
Das Problem ist, dass liste nach dem invertieren plötzlich ein Element mehr hat. Aus {1,2} wird
{2,1,null}.
@Michael ja dass könnte sein. Werds nochmal mit schleifen versuchen