HashMap zwraca java.lang.NullPointerException - gdzie mam błąd

0

Miałem napisać klasę Ship korzystającą z metod klasy ShipSizeLimit stworzyłem taki oto kod:
https://onlinegdb.com/ryqzCS82Q
i napisałem prosty test ale za każdym razem linijka:

return ships.get(size).iterator().next();

wywala błąd** java.lang.NullPointerException**. Nie mam zielonego pojęcia, gdzie może być błąd a siedzę nad tym od paru godzin. Z góry bardzo dziękuję za jakąkolwiek pomoc

1

W skrócie: nie był spełniony żaden z twoich kosmicznych warunków, mapa statków była pusta, więc przy próbie pobrania elementu numer 1 z pustej mapy poleciał wyjątek.

0
szarotka napisał(a):

W skrócie: nie był spełniony żaden z twoich kosmicznych warunków, mapa statków była pusta, więc przy próbie pobrania elementu numer 1 z pustej mapy poleciał wyjątek.

Czyli jak warunki poprawie powinno być ok?

0

Generalnie kod jest skrajnie nieczytelny, ja rozumiem, że to twoje początki ale radzę przerobić żeby w przyszłości mniej czasu tracić na szukanie błędu. Radzę też używać debugera ażeby łatwiej wytropić co jest nie tak, to naprawdę ułatwi Ci pracę :)

Co jest źle:
Błąd jest na etapie setLimit
masz i=0
wywołujesz: limit.getLimit(0)
zatem wchodzisz w ifa: if (size == 0)
i zwracasz zero
stąd masz: limits[0] = 0

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