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

HashMap zwraca java.lang.NullPointerException - gdzie mam błąd
M4
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 lat
  • Postów:221
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:

Kopiuj
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

szarotka
  • Rejestracja:ponad 9 lat
  • Ostatnio:13 dni
  • Postów:533
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.

M4
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 lat
  • Postów:221
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?

szarotka
  • Rejestracja:ponad 9 lat
  • Ostatnio:13 dni
  • Postów:533
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.