java - 如何将不同类型的元素添加到 Java 集合的 PriorityQueue 中?

标签 java collections

我想将字符串和整数元素添加到优先级队列中。但是,在添加字符串元素然后添加整数后,程序中断并给出错误,如下所示: 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/

相关文章:

java - Spring @Cacheable 除非由自定义 key 生成器创建的属性引用 key

java - 空白最终本地 vs 空白最终字段

c# - .NET HashTable 与 Dictionary - Dictionary 能一样快吗?

asp.net - Asp.Net MVC 3 应用程序中复杂子对象的集合?

java - 如何更改java集合选择的位置

Java:集合中的对象

java - 如何检查数组中是否有重复的数字?

运行时Java Hashmap到对象

java - Joda-Time 到 java.time 迁移 'fromDateFields()'

java - 将 SQL Count 函数返回给 Java