ArrayLists and returning null
来源:爱站网时间:2021-09-16编辑:网友分享
我正在尝试完成方法'priority',该方法应返回任务的优先级。如果指定的名称不存在,则返回null(如主体所示)。我尝试遍历...
问题描述
我正在尝试完成方法'priority',该方法应返回任务的优先级。如果指定的名称不存在,则返回null(如主体所示)。我试图遍历ArrayList,但是我不认为这是这样做的方法。有谁可以帮助我吗?
class Task
{
public static final ArrayList ALL_TASKS = new ArrayList();
private String name;
private Integer priority;
public Task(String name, Integer priority)
{
ALL_TASKS.add(this);
this.name = name;
this.priority = priority;
}
public String toString()
{
return "name: " + this.name + "\tpriority: " + this.priority;
}
}
class Main
{
public static void main(String[] arguments)
{
new Task("Clean", 5);
new Task("Dishwash", 4);
new Task("Study", 1);
System.out.println(Task.priority("Dishwash"));
System.out.println(Task.priority("Vacuumclean"));
}
}
思路一:
尝试一下:
public static Integer priority(String name) {
for(Task task : ALL_TASKS) {
if(task.name.equals(name)) {
return task.priority;
}
}
return null;
}
或使用Stream-API:
public static Integer priority(String name) {
return ALL_TASKS.stream()
.filter(task -> task.name.equals(name))
.map(task -> task.priority)
.findFirst()
.orElse(null);
}
思路二:
public static Integer priority(String name) {
for(int i = 0; i would be better
}
}
这是我要使用的示例。它没有经过测试,但是可以让您知道是什么创造出来的以及思维方式。
也在我的解决方案中,我还假设您还为getName()
创建了getPriority()
和Task
方法