java - 为什么我不能使用 "String"作为优先级队列的参数?

标签 java class processing priority-queue

<分区>

我正在尝试在处理 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());
    }
}

最佳答案

您似乎有一个名为 filename.java 的文件,该文件具有一个名为 PriorityQueue 的类型,该类型不采用泛型。您很可能应该删除该文件,然后导入您想要的 PriorityQueue:

import java.util.PriorityQueue;

关于java - 为什么我不能使用 "String"作为优先级队列的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067594/

相关文章:

java - Eclipse 和 JSP 编程。在哪里存储类(class)?

java - 将毫秒转换为小时和分钟时出现问题

java - 以下 AES-128 算法的准确名称是什么?

c++ - 创建类对象的 vector 时何时调用构造函数?

python - 自定义 python 包的导入问题

java - 尝试用Java创建一个旋转的转轮

java - 处理 P3D 草图无法在 Javascript 模式下工作

java - 我可以在 Eclipse 上运行一个程序来打开控制台,然后打开一个处理窗口吗?

java - 网格袋布局 : unexpected space between component

java - 有什么方法可以模拟 HTTP 错误响应 5xx 和 4xx