Запись элементов в массив из аргумента метода

Рейтинг: 0Ответов: 1Опубликовано: 15.02.2023

Добавила скриншот. Смысл в том чтобы deposit записать в массив объектов deposits. Но каждый передавая новый объект старый не сохраняется в массиве. И я просто получаю каждый раз массив с одинаковыми объектами.есть метод с одним параметром. Этот метод могут вызывать бесконечное множество раз а параметр(аргумент) должен быть записан в массив. Но при каждом вызове метода предыдущее значение не сохраняется а записывается новое. Как сохранить предыдущее значение?

Что можно поискать почитать, какую тему разобрать?

Ответы

▲ 0Принят

У вас скорее всего существует заранее созданный массив заданного размера, и проблема в вашем коде, что вы не выходите из цикла, как только нашли первую свободную ячейку в массиве и записали в неё депозит, а заполняете весь массив целиком (пропуская только элемент по индексу 0).

Исправленный вариант кода:

public boolean addDeposit(Deposit deposit) {
    if (null == deposit) {
        throw new NullPointerException("Deposit cannot be null!");
    }
    boolean added = false;
    for (int i = 0; i < deposits.length && !added; i++) {
        if (null == deposits[i]) {
            deposits[i] = deposit;
            added = true;
            // break; // необязательно, если в условии цикла проверяется !added
        }
    }
    return added;
}