Robie własną implementację listy-Listejednokierunkowa,jednak po przetestowaniu nie działają dwie metody dodaj. Oto mój kod //4programmers.net/Pastebin/15389
Nie wrzucałem tego do IDE tylko spojrzałem więc mogę się mylić ale
public void dodaj(Object wartosc)
{
Wezel nowy = new Wezel(wartosc);
if(this.czyPusta()){
poczatek= nowy;
koniec=nowy;
}
else{
koniec.nast=nowy;
nowy.nast=null;
koniec=nowy;
}
ilosc++;
}
ten kod w else jest jakiś dziwny. Dlaczego tak? jako "next" od obecnego końca ustawiasz nowy, a potem znowu koniec to nowy? Czy to nie znaczy, że dwa ostatnie węzły będą takie same?
Co według Ciebie znaczy nie działa?
Zmieniłem trochę tą metodę dodaj(Object), ale efekt ten sam , może w takim razie z metodą toString()jest coś nie tak? https://4programmers.net/Pastebin/15391
Pokaż jak używasz tej listy i podaj jaki jest oczekiwany wynik.
Tak na pierwszy rzut oka to w toString
listy, przeskakujesz pierwszy element.
Na ekranie nic się nie pojawia, bo nic na niego nie wypisujesz. Taki zapis list.toString();
skleja tylko Twoje dane do stringa, ale nie zobaczysz ich na ekranie.
Swoją drogą to podałeś kod który nawet się nie skompiluje. Jest sporo błędów w składni jak i w logice. Przykłady pierwsze z brzegu:
- w klasie
Pracownik
masz nazwany konstruktorStudent
- liczba 54616168166 jest za duża żeby weszła do inta
- tutaj masz o jeden parametr więcej niż wymaga konstruktor:
Pracownik AC = new Pracownik(56168476766, "Dariusz", "Krzak", 5500, 99);
@PArtniak: zdecyduj się w końcu w czym mam Ci pomóc, bo co chwilę piszesz co innego. Podsyłasz komunikat błędu, do kodu który już zmodyfikowałeś w międzyczasie i oczekujesz pomocy - to tak nie zadziała. Przysyłasz komunikat sygnalizujący że w 219 linijce leci NPE, a klasa którą nam pokazujesz do sprawdzenia nie ma nawet tyle linijek kodu...
Jeżeli zdecydujesz w czym mamy pomóc, to podeślij te rzeczy:
-cały komunikat błędu
-całą klasę w kórej wystąpił błąd
-to jak wywołujesz swój kod, czyli co tam siedzi w main