0

これは私の課題のステップであり、簡単に思えますが、少し混乱しているようです。これが明日になることを考えると、助けは素晴らしいでしょう。コード形式の応答は素晴らしいでしょう。手順は次のとおりです。

キューの2つの優先配列を作成する必要があります。アクティブ配列と期限切れの配列です。この例では、単純化して優先度の値を0から4のみにします。つまり、アクティブアレイと期限切れアレイはそれぞれ5つのキューで構成されます。

4

1 に答える 1

1

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());

これであなたがすることはあなた自身の見張りです。

于 2013-03-26T00:57:40.967 に答える