Usuwanie ostatniego elementu z listy jednokierunkowej java

0

Witam! mam problem, ponieważ muszę zaimplementować programik do list i mam pewnie problem z usuwaniem, ponieważ jeżeli usuwam element nieostatni to wszystko jest ok, ale jeżeli jest to ostatni element to wyskakuje mi błąd. Rzuci ktoś okiem i pomoże?
Całość załączyłem w zipie :)

0

To:

l.dodaj(new Integer(1), 0);
l.dodaj(new Integer(4));

l.dodaj(new Integer(5));
l.dodaj(new Integer(3));
l.dodaj(new Integer(2), 2);
l.dodaj(new Integer(6));

Może być znacząco uproszczone - nie musisz używać new Integer():

l.dodaj(1, 0);
l.dodaj(4);

l.dodaj(5);
l.dodaj(3);
l.dodaj(2, 2);
l.dodaj(6);

Co do Twojego problemu, zakładam że chodzi o tą linię:

System.out.println(l.usun(6));

Zauważ że przed nią usuwasz pierwszy element, potem zmieniasz 3 element na 8; lista wygląda tak:

4 2 8 3 6

Elementów jest 5 i jako że indeksujesz od 1 a nie od 0 ostatni element to indeks 5, nie możesz zatem usunąć 6-tego elementu.

Sugerowałbym zmienić kod tak aby pierwszy element był pod indeksem 0 bo do tak jest wszędzie i do tego jesteśmy (jako programiści) przyzwyczajeni.
Przydało by się podzielić wszystkie pliki na osobne foldery - build i src - większość IDE robi to automatycznie przy tworzeniu nowego projektu więc jeżeli jeszcze nie masz zainstalowanego środowiska programowania to polecam Ci IntelliJ IDEA.

1 użytkowników online, w tym zalogowanych: 0, gości: 1