ArrayList 转换为 PriorityQueue + java

2 java

我遇到这个问题,到目前为止我在整个程序中使用了 Arraylist,现在我也需要它的功能成为优先级队列的功能。

所以我做了我认为显而易见的事情,并将其转换为PriorityQueue z = (PriorityQueue) x x 是 arraylist 的位置。

在运行时,这会给出一个错误,表明这是不可能的。

有没有什么简单的方法可以使这项工作有效。我无法将整个数组列表更改为优先级队列,因为那时我必须更新所有使用的函数......

我应该每次从 arraylist 添加项目到新的优先级队列还是有更好的方法......

多谢...

Jus*_*mas 5

PriorityQueue pq = new PriorityQueue();
pq.addAll(x);
Run Code Online (Sandbox Code Playgroud)

  • @user506710您正在尝试使用未实现可比较的项目创建优先级队列。编辑:换句话说,Java 无法确定哪个顶点比另一个顶点小或大,因为它没有实现 Comparable 接口。有关更多详细信息,请查看此处:http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html (2认同)