为什么不能将“字符串”用作优先级队列的参数?

时间:2019-07-17 02:05:44

标签: 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());
    }
}

3 个答案:

答案 0 :(得分:2)

似乎您有一个名为filename.java的文件,该文件的类型为PriorityQueue且没有通用名称。您应该最有可能删除该文件,然后导入所需的PriorityQueue:

import java.util.PriorityQueue;

答案 1 :(得分:1)

您是否已从java.util导入优先级队列? 如果没有,那么:

import java.util.PriorityQueue;

答案 2 :(得分:0)

已解决。我非常笨,无意间在同一文件夹中创建了PriorityQueue文件。感谢您的快速解答。