Подготовить проект к ревью шестого спринта - #2
Conversation
…вторных просмотров в истории.
| public List<T> getHistory() { | ||
| return new ArrayList<>((ArrayList<? extends T>) history); | ||
| public List<Task> getHistory() { | ||
| List<Task> history = List.copyOf(getTasks()); |
There was a problem hiding this comment.
метод getTasks() сам при каждом вызове создает новую коллекцию, создавать еще одну не нужно
| public List<Task> getHistory() { | ||
| List<Task> history = List.copyOf(getTasks()); | ||
| if (history.isEmpty()) { | ||
| return null; |
| public void add(Task task) { | ||
| int taskId = task.getId(); | ||
|
|
||
| if (idToNode.isEmpty()) { |
There was a problem hiding this comment.
перенеси добавление первой ноды в метод linkLast()
| Node newNode = new Node(null, task, null); | ||
| idToNode.put(task.getId(), newNode); | ||
| first = newNode; | ||
| } else if (idToNode.containsKey(taskId)) { |
There was a problem hiding this comment.
действие linkLast(task) присутствует как в блоке if(), так и else(), значит оно никак не зависит от условия оператора if/else и его можно сделать одним действием уже после оператора
| private void linkLast(Task task) { | ||
| Node oldLastNode; | ||
| Node newLastNode; | ||
|
|
There was a problem hiding this comment.
если в очереди только одна нода, то на нее должны указывать как first, так и last. По аналогии с очередью например к врачу: единственный пациент, он же ответит я, на вопрос врача кто первый, и так же ответит я, на вопрос нового пациента кто последний.
|
|
||
| Node node = first; | ||
| while (node.next != null) { | ||
| tasks.add(node.next.data); |
There was a problem hiding this comment.
- добавляй задачу из текущей ноды, а не следующей
- в while() так же с null проверяй текущую ноду
- действие tasks.add(first.data) убери
| int taskId = node.data.getId(); | ||
|
|
||
| if (node.prev == null & node.next == null) { | ||
| idToNode.remove(taskId); |
There was a problem hiding this comment.
убери из всех if/else удаление из idToNode и сделай его одной строкой после
|
|
||
| if (node.prev == null & node.next == null) { | ||
| idToNode.remove(taskId); | ||
| first = null; |
There was a problem hiding this comment.
метод removeAllSubtasksByEpic(int epicId) - еще нужно все подзадачи удалить из истории
метод removeAllTasks() - аналогично
метод removeAllEpics() - тут и эпики, и подзадачи долой из истории
метод removeAllSubTasks() - тут только подзадачи
| public ArrayList<? extends Task> getHistory() { | ||
| return (ArrayList<? extends Task>) historyManager.getHistory(); | ||
| public ArrayList<Task> getHistory() { | ||
| return new ArrayList<>(historyManager.getHistory()); |
There was a problem hiding this comment.
это уже третье оборачивание в новый список истории, не нужно))
Сделать историю посещений неограниченной по размеру.
Избавиться от повторных просмотров в истории.