为什么我不能使用 "String" 作为优先级队列的参数?
Why can't I use "String" as a parameter for a priority queue?
我正在尝试在处理 3 中实现 A* 算法,我决定使用优先级网格来存储可探索节点并确定其优先级。我刚刚决定做一个简单的测试来确保我知道语法,但是当我尝试将队列类型设置为 "String" 或 "Integer" 时,我得到错误 The type filename.PriorityQueue is not generic; it cannot be parameterized with arguments <String>
Any为什么会这样?
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());
}
}
您是否从 java.util 导入了优先级队列?
如果不是那么:
import java.util.PriorityQueue;
您似乎有一个名为 filename.java
的文件,其中有一个名为 PriorityQueue
的类型,该类型不采用泛型。您很可能应该删除该文件,然后导入您想要的 PriorityQueue:
import java.util.PriorityQueue;
已解决。我非常愚蠢,不小心在同一个文件夹中创建了一个 PriorityQueue 文件。感谢您的快速回答。
我正在尝试在处理 3 中实现 A* 算法,我决定使用优先级网格来存储可探索节点并确定其优先级。我刚刚决定做一个简单的测试来确保我知道语法,但是当我尝试将队列类型设置为 "String" 或 "Integer" 时,我得到错误 The type filename.PriorityQueue is not generic; it cannot be parameterized with arguments <String>
Any为什么会这样?
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());
}
}
您是否从 java.util 导入了优先级队列? 如果不是那么:
import java.util.PriorityQueue;
您似乎有一个名为 filename.java
的文件,其中有一个名为 PriorityQueue
的类型,该类型不采用泛型。您很可能应该删除该文件,然后导入您想要的 PriorityQueue:
import java.util.PriorityQueue;
已解决。我非常愚蠢,不小心在同一个文件夹中创建了一个 PriorityQueue 文件。感谢您的快速回答。