Java PriorityQueue+;班

Java PriorityQueue+;班,java,class,priority-queue,Java,Class,Priority Queue,您好,我在尝试将PropertyQueue与java一起使用时出错。 我对java有点不熟悉,希望您能解释一下这个错误! 我的代码大致如下: import java.util.*; import java.io.*; class Lecture{ public Lecture(Strings){ ... } //Then some getter and setter and function } class Room{ Vector<Lect

您好,我在尝试将PropertyQueue与java一起使用时出错。 我对java有点不熟悉,希望您能解释一下这个错误! 我的代码大致如下:

import java.util.*;
import java.io.*;

class Lecture{
    public Lecture(Strings){
        ...
    }
    //Then some getter and setter and function
}
class Room{
   Vector<Lecture> setLecture = new Vector<Lecture>();
   int end = 1;

   public void change_end(int c){
      end = end +c;
   }

  public void add_lecture(Lecture l){
     setLecture.add(l);
  }

}

public class interval_partioning{

  public static void main (String[] args) {
  // create priority queue
  PriorityQueue <Room>  classrooms = new PriorityQueue <Room> () ; 
  Room classroom1= new Room();
  Room classroom2= new Room();
  classrooms.add(classroom1);
  classrooms.add(classroom2);
 }
}
import java.util.*;
导入java.io.*;
课堂讲授{
公开讲座(弦乐){
...
}
//然后是一些getter和setter以及函数
}
教室{
向量集合=新向量();
int-end=1;
公共作废更改结束(int c){
结束=结束+c;
}
公共空间附加讲座(讲座l){
添加(l);
}
}
公共类间隔分区{
公共静态void main(字符串[]args){
//创建优先级队列
PriorityQueue=newpriorityqueue();
房间类别Room1=新房间();
房间类别Room2=新房间();
增加教室(教室1);
增加教室(教室2);
}
}
这是我在这一行中得到的错误:questions.add(classroom1)

线程“main”java.lang.ClassCastException中的异常:教室 无法强制转换为类java.lang.Compariable(文件室未命名 加载程序“app”的模块;java.lang.Compariable位于的模块java.base中 加载程序“引导程序”)

这意味着什么以及如何修复它

谢谢大家!

Java优先级队列的add方法在 尝试添加一个不实现 可比较接口并重写其equals方法

更简单地说,优先级队列根据某个优先级或某个属性将对象插入队列以与对象进行比较,当它不知道应该与哪个属性比较对象时,它抛出ClassCastException

参考:


如果有帮助,请投票表决解决方案。谢谢。

除了您的实际问题之外,不要使用
向量。自Java1.2以来,不鼓励使用它。您的实际问题是
Room
没有实现
Comparable
接口。因此,
PriorityQueue
不知道如何对项目进行排序。哦,既然你指出了它,它就有意义了!因此,因为它不是一个int而是一个类,所以它不确定要比较什么!非常感谢你!我明天会做的,但我相信这会非常有帮助!