我遇到了包含泛型和ArrayList
的作业。赋值是通过定义使用T
实现队列的优先级队列类来实现能够保存任意类型ArrayList
的对象的优先级队列。
支持的方法是Add(item, priority)
根据优先级remove()
删除优先级列表中的最高项目。
我创建了类型为T
的通用类,声明为private T data
。使用多个构造函数来设置数据。现在我不知道如何使用此类并使用ArrayList
,因为我不确定add(string, integer)
ArrayList
中的{{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);