我正在尝试在处理3中实现A *算法,因此决定使用优先级网格来存储可优先使用的节点并确定其优先级。我刚刚决定做一个简单的测试以确保我知道语法,但是当我尝试将队列的类型设置为“ String”或“ Integer”时,我得到了错误The type filename.PriorityQueue is not generic; it cannot be parameterized with arguments <String>
,为什么会这样呢?发生了吗?
import java.util.PriorityQueue;
import java.util.Comparator;
public class Test {
public void main(String[] args) {
PriorityQueue<String> pq= new PriorityQueue<String>(5,(a,b) -> a.length() - b.length());
}
}
答案 0 :(得分:2)
似乎您有一个名为filename.java
的文件,该文件的类型为PriorityQueue
且没有通用名称。您应该最有可能删除该文件,然后导入所需的PriorityQueue:
import java.util.PriorityQueue;
答案 1 :(得分:1)
您是否已从java.util导入优先级队列? 如果没有,那么:
import java.util.PriorityQueue;
答案 2 :(得分:0)
已解决。我非常笨,无意间在同一文件夹中创建了PriorityQueue文件。感谢您的快速解答。