ТЗ выполнено, но не уверен в правильтности способа

Нужно создать массив чисел от 100 до 1000, потом создать второй массив, длина которого идентична первому, проинициализировать его от в обратном порядке, в отличии от первого, т.к. 1000, 999, ... 100.

Как сделал я:

        int lengthOfArray = 901;
    int[] firstArray = new int[lengthOfArray];
    for(int i = 0; i < firstArray.length; i++) {
        firstArray[i] = i + 100;
        System.out.println(firstArray[i]);
    }

    int[] secondArray = new int[lengthOfArray];
    for (int c = secondArray.length - 1; c >= 0; c--) {
        secondArray[c] = c + 100;;
    }

Проблема в том, что ответ, который я нашел к уроку выглядил так:

        int[] first = new int[900];
    for (int i = 0; i < first.length; i++) {
        first[i] = i + 100;
    }
    int[] second = new int[first.length];
    for (int i = 0, j = first.length - 1; i < first.length; i++, j--) {
        second[j] = first[i];
    }
    for (int i : second) {
        System.out.println(i);
    }

Я понимаю что можно писать разными способами, но т.к. изучаю самостоятельно по бесплатным и полунеофициально выставленным в свободный доступ видеозаписям - переживаю что не выполнил это нужным или "правильным" способом. Вопрос собственно в том - есть ли какие-то косяки в моем решении? Может нельзя принципиально делать так как я. Либо неувидел грязь в своем коде.


Ответы (1 шт):

Автор решения: Alex Rudenko

Два цикла для инициализации массивов представляются лишними, оба можно проинициализировать в одном цикле:

final int from =  100;
final int to   = 1000;
final int len  = to - from + 1; // +1 если значение to включено в результат

int[] first  = new int[len];
int[] second = new int[len];

for (int i = 0, k = from; i < len; i++, k++) {
    first[i] = second[len - 1 - i] = k;
}

Также для инициализации массива чисел вместо циклов можно использовать метод Arrays::setAll, если для определения значений массива существует некая функция.

int[] first  = new int[len];
int[] second = new int[len];

Arrays.setAll(first,  i -> from + i);
Arrays.setAll(second, i -> to - i);
→ Ссылка