Приветствую!
Добрался до большой задачи о ресторане, уже заранее попадались на глаза отзывы о "капризности" валидатора при ее проверке, и на 10 этапе попался, возможно, как раз такой случай: никаких конкретных указаний о реализации метода нет, поэтому я написал его так, как смог придумать, долго тестировал - вроде список формируется правильно, но валидатор утверждает, что у меня в программе нет вообще ничего. Подозреваю, что это связано с введением специального поля класса для хранения лучшего из найденных списков, как переписать код по-другому - пока не придумал.
Текст основного метода формирования списка:
private void getBestList (List<Advertisement> list, int index) {
List<Advertisement> tempList = new ArrayList<>(list);
if (getTotalDuration(list) <= timeSeconds) {
if (getTotalAmount(list) > getTotalAmount(playList)) playList = new ArrayList<>(list);
if (getTotalAmount(list) == getTotalAmount(playList) && getTotalDuration(list) > getTotalDuration(playList)) playList = new ArrayList<>(list);
if (index < storage.list().size()) {
getBestList(tempList, index + 1);
tempList.add(storage.list().get(index));
getBestList(tempList, index + 1);
}
}
}
Соответственно, возникает вопрос: стоит ли пытаться мучаться со своим решением (если оно вообще рабочее, вдруг я что-то не предусматриваю) или проще тупо найти в инете готовое, поскольку в данном случае пытаться предугадать, что именно хочет валидатор, можно месяцами?
Заранее благодарю за любые ответы.
package com.javarush.task.task27.task2712;
import com.javarush.task.task27.task2712.kitchen.Cook;
import com.javarush.task.task27.task2712.kitchen.Waiter;
import java.io.IOException;
public class Restaurant {
public static void main(String[] args) {
Tablet tablet5 = new Tablet(5);
Cook cook = new Cook("Повар");
tablet5.addObserver(cook);
tablet5.createOrder();
Waiter waiter = new Waiter();
cook.addObserver(waiter);
}
}