我想将字符串和整数元素添加到优先级队列中。但是,在添加字符串元素然后添加整数后,程序中断并给出错误,如下所示: java.lang.ClassCastException:java.lang.String无法转换为java.lang.Integer
单个PriorityQueue中不允许有多种类型的值吗? 反过来又会怎样呢?
我的 PriorityQueue 看起来像这样:
PriorityQueue queue = new PriorityQueue();
要添加的元素如下:
public void addElementToQueue(Object obj) {
queue.add(obj);
}
最佳答案
我不知道你想要遵循什么逻辑,但它看起来像下面的代码:
public static void main(String[] args) {
PriorityQueue<Object> priorityQueue = new PriorityQueue<>(new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
//Your own comparison logic
return 0;
}
});
priorityQueue.add("Bar");
priorityQueue.add(2);
priorityQueue.add(1);
priorityQueue.add(3);
priorityQueue.add(4);
priorityQueue.add("Foo");
System.out.println(priorityQueue);
}
如果您需要更多详细信息,请告诉我。
谢谢
关于java - 如何将不同类型的元素添加到 Java 集合的 PriorityQueue 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59375933/