类中填满后调用打印整张表的方法需要在类Manager
中改正什么?我的问题是记录被覆盖,只显示最后一个。我想得到这三个。Main
HashMap
Main
:
public class Main {
public static void main(String[] args) {
Manager manager = new Manager();
manager.createNewTask("Задача 1", "Desc 1", TaskStatus.NEW);
manager.createNewTask("Задача 2", "Desc 2", TaskStatus.IN_PROGRESS);
manager.createNewTask("Задача 3", "Desc 3", TaskStatus.DONE);
/*
!!!! Тут метод должен вывести на печать весь allTacks !!!!
Но у меня всегда выводится только последняя запись при вызове:
System.out.println(manager.getAllTacks());
*/
}
}
Task
:
import java.util.Objects;
public class Task {
private static long id;
private String name;
private String description;
private TaskStatus status;
public Task(String name, String description, TaskStatus status) {
this.name = name;
this.description = description;
this.status = status;
}
public static long getId() {
return id;
}
public TaskStatus getStatus() {
return status;
}
public void setName(String name) {
this.name = name;
}
public void setDescription(String description) {
this.description = description;
}
public void setStatus(TaskStatus status) {
this.status = status;
}
public static void setId(long id) {
Task.id = id;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return "Task{" +
"name='" + name + '\'' +
", description='" + description + '\'' +
", status=" + status +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || this.getClass() != o.getClass()) return false;
Task task = (Task) o;
return Objects.equals(task.id, this.id) &&
Objects.equals(task.name, this.name) &&
Objects.equals(task.description, this.description) &&
Objects.equals(task.status, this.status);
}
@Override
public int hashCode() {
return Objects.hash(name, description, status);
}
}
Manager
:
import java.util.*;
public class Manager {
private HashMap<Integer, Task> allTacks;
public Manager() {
this.allTacks = new HashMap<>();
}
public void createNewTask(String name, String description, TaskStatus status) {
allTacks.put(Task.getId(), new Task(name, description, status));
}
public HashMap<Integer, Task> getAllTacks() {
return allTacks;
}
}
TaskStatus
:
public enum TaskStatus {
NEW,
IN_PROGRESS,
DONE
}
在
Task
添加的类中++
,一切正常。