如何在Java中与类一起使用PriorityQueue?
我有这些课如何在Java中与类一起使用PriorityQueue?,java,Java,我有这些课 public class Datos { private String Nombre; private String Telefono; private int Prioridad; public Datos(String Nombre, String Telefono, int Prioridad) { this.Nombre = Nombre; this.Telefono = Telefono; this.Prioridad = Prioridad;
public class Datos {
private String Nombre;
private String Telefono;
private int Prioridad;
public Datos(String Nombre, String Telefono, int Prioridad)
{
this.Nombre = Nombre;
this.Telefono = Telefono;
this.Prioridad = Prioridad;
}
public String getNombre() {
return Nombre;
}
public String getTelefono() {
return Telefono;
}
public int getPrioridad() {
return Prioridad;
}
public void setNombre(String Nombre) {
this.Nombre = Nombre;
}
public void setTelefono(String Telefono) {
this.Telefono = Telefono;
}
public void setPrioridad(int Prioridad) {
this.Prioridad = Prioridad;
}
}
我想优先考虑客户。我们有4个类别1、2、3、4,我想使用PriorityQueue进行比较您需要使您的类DATO实现具有可比性。这告诉java可以比较对象。然后在Datos中定义一个compareTo方法。如果
This>d
,则此方法应返回一个大于0的数字;如果This==d
,则此方法应返回一个等于0的数字;如果This
,则此方法应返回一个小于0的数字:
public int compareTo(Datos d) {
return priority - d.priority;
}
然后,您可以声明一个
新的优先级队列
,并将对象添加到。我远程调用方法compareTo的地方?我不知道在哪里。这是我第一次使用它PriorityQueue@SaulRamirez你不必自己打电话给compareTo。PriorityQueue将调用它来查找对象的排序顺序。系统在java.util.PriorityQueue.siftUpComparable(PriorityQueue.java:652)在java.util.PriorityQueue.siftUp(PriorityQueue.offer)在java.util.PriorityQueue.siftUp(PriorityQueue.java:647)处有异常“proyectosegundoqueue.Datos不能转换为java.lang.Comparable”(PriorityQueue.java:344)在java.util.PriorityQueue.add(PriorityQueue.java:321)您是否有公共类DATO实现类似的
?