Code review małego programu

0

Ostatnio popularny na forum temat związany z sumowaniem sąsiadów dla każdego elementu tablicy i zwracaniem maksymalnej ich sumy.
Popełniłem taki program: https://github.com/Yerbanos/ArraySumOfNeighbours_2.git
Ale mam dwie wątpliwości:

  1. Metoda getMaxSumOfNeighbours początkowo zwracała int ale chciałem wywalić wyświetlanie do main więc zrobiłem klasę Maxelement i ten obiekt zwracam w tej funkcji.
    Nie podoba mi się jednak to że wywołuję tą metodę trzykrotnie jedynie po to aby odczytać inne pole z obiektu Maxelement. Zakładam jakiś błąd w moim myśleniu, lepiej było by zwrócić tablicę trzech intów?
  2. Aby sprawdzić czy nie sumuję elementu z poza zakresu tablicy sprawdzam czy element istnieje wykonując na nim jakąś nic nieznaczącą operację i łapię wyjątek odwołania się do nieistniejącego indeksu. Nie jest to poprawne korzystanie z wyjątków ale nie mogłem znaleźć na szybko czy dla tablicy prymitywów jest jakaś metoda którą można sprawdzić istnienie indeksu w tablicy.
2

ad1. Przecież Maxelement to te trzy inty - czemu nie podstawisz wyniku wywołania getMaxSumOfNeighbours pod zmienną ?

Maxelement  maxy = getMaxSumOfNeighbours(randomIntArray);
 System.out.println("sum of elements equal: " + maxy.getMaxSum());

ad2. Faktycznie metoda isElementExist jest ultrakancerogenna. Dodatkowo łamie taką niepisaną zasadę, że Exception Oriented Programming mogę używać na dzielnicy tylko ja. Sorry.
Tablice w javie mają takie pole .length i możesz sprawdzić wielkość (czyli indeks elementu który się nie zmieści).
Dla jednowymiarowej:

boolean contains(int[] arrray, int index) {
  return index >= 0 && index < arrray.length;
}

Dla dwuwymiarowej zrobisz to sam. (zrób w dwóch krokach). (Sorry, osobiście nie dałbym rady - po 3 miesiącach pisania w Javie traci się umiejętność posługiwania tablicami wielowymiarowymi, a ja już nieco dłużej w tym siedze).

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