如何在java中创建队列的两个优先级数组?/Linux固定时间调度器
这是我作业中的一个步骤,看起来很简单,但对我来说似乎有点困惑。考虑到这件事明天就要交了,帮个忙就太好了。代码格式的响应将是伟大的。以下是步骤: 您需要创建两个队列优先级数组:活动数组和如何在java中创建队列的两个优先级数组?/Linux固定时间调度器,java,linux,multithreading,scheduling,Java,Linux,Multithreading,Scheduling,这是我作业中的一个步骤,看起来很简单,但对我来说似乎有点困惑。考虑到这件事明天就要交了,帮个忙就太好了。代码格式的响应将是伟大的。以下是步骤: 您需要创建两个队列优先级数组:活动数组和 过期的数组。在我们的例子中,我们将进行简化,并且只有0到4的优先级值,即活动数组和过期数组将分别由5个队列组成。Java类是PriorityQueue,而不是“优先级数组”。我想你误解了任务 假设您有一个具有优先级值的对象,我们将在这里省略限制。你可以自己放进去 public class Task { p
过期的数组。在我们的例子中,我们将进行简化,并且只有0到4的优先级值,即活动数组和过期数组将分别由5个队列组成。Java类是
PriorityQueue
,而不是“优先级数组”。我想你误解了任务
假设您有一个具有优先级值的对象,我们将在这里省略限制。你可以自己放进去
public class Task {
private Integer priority; // Let's not have priorities change by accident.
private String name;
private double cost;
// Constructors, getters, setters elided.
}
现在,PriorityQueue需要是一个可比较的类,或者使用比较器生成。让我们使用后一种方法,因为我假设相同的优先级具有相同的权重,并且任务没有自然的排序
public class TaskComparator implements Comparator<Task> {
public int compare(Task left, Task right) {
return left.getPriority() - right.getPriority();
// Only because the numbers are limited.
}
}
公共类TaskComparator实现Comparator{
公共整数比较(任务左、任务右){
返回left.getPriority()-right.getPriority();
//只是因为数量有限。
}
}
您可以使用创建任务的优先级队列
PriorityQueue<Task> active = new PriorityQueue<Task>(10, new TaskComparator());
PriorityQueue active=new PriorityQueue(10,new TaskComparator());
你用它做什么是你自己的了望。Err。。那么,实际问题是什么?您有一个队列类,因此可以根据优先级对它们进行索引-谢谢你,我真的很感激。我需要澄清这一点,因为“队列的两个优先级数组”直接来自作业(实际上是直接从作业中复制和粘贴的)。您需要了解
PriorityQueue
的用途。它是一个可以存储对象并提供当前存储在其中的最高优先级项的集合。因此,你是一名学生
,你从导师那里得到了很多作业
。表示您的对象将包含一个PriorityQueue
(可能名为pq)。当你想完成一项任务时,你可以通过调用pq.poll()
找到最重要的任务。有困难,;你如何处理领带?还是穿线?公平对待优先级较低的任务怎么样?