Generics和ArrayList实现优先级队列

时间:2013-04-11 21:14:03

标签: java

我遇到了包含泛型和ArrayList的作业。赋值是通过定义使用T实现队列的优先级队列类来实现能够保存任意类型ArrayList的对象的优先级队列。

支持的方法是Add(item, priority)

根据优先级remove()删除优先级列表中的最高项目。

我创建了类型为T的通用类,声明为private T data。使用多个构造函数来设置数据。现在我不知道如何使用此类并使用ArrayList,因为我不确定add(string, integer) ArrayList中的{{1}}更不用说迭代它了。

非常感谢任何关于如何处理这项功课的提示和想法。

1 个答案:

答案 0 :(得分:1)

您只需将数据及其优先级包装在另一个对象中,仅在您的PriorityQueue内部使用(就像LinkedList使用包装数据的节点和指向下一个节点的指针一样)。

所以priorityQueue(T data, int priority)最终将被实现为

Node node = new Node(data, priority);
// find the position where the node must be inserted
arrayList.add(position, node);