これは私の課題のステップであり、簡単に思えますが、少し混乱しているようです。これが明日になることを考えると、助けは素晴らしいでしょう。コード形式の応答は素晴らしいでしょう。手順は次のとおりです。
キューの2つの優先配列を作成する必要があります。アクティブ配列と期限切れの配列です。この例では、単純化して優先度の値を0から4のみにします。つまり、アクティブアレイと期限切れアレイはそれぞれ5つのキューで構成されます。
これは私の課題のステップであり、簡単に思えますが、少し混乱しているようです。これが明日になることを考えると、助けは素晴らしいでしょう。コード形式の応答は素晴らしいでしょう。手順は次のとおりです。
キューの2つの優先配列を作成する必要があります。アクティブ配列と期限切れの配列です。この例では、単純化して優先度の値を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はComparableクラスであるか、Comparatorで作成する必要があります。後者を使用しましょう。同じ優先順位が同じように重み付けされており、の自然順序付けがないと仮定しているためですTask
。
public class TaskComparator implements Comparator<Task> {
public int compare(Task left, Task right) {
return left.getPriority() - right.getPriority();
// Only because the numbers are limited.
}
}
でタスクのPriorityQueueを作成できます
PriorityQueue<Task> active = new PriorityQueue<Task>(10, new TaskComparator());
これであなたがすることはあなた自身の見張りです。