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
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.