我正在为班级做作业,我必须arraylist
按日期订购,我已经实现了可比较的班级,但事实是我不知道如何创建比较对象。
工作报告类有:客户姓名、客户地址、报告日期、将要执行此操作的工人姓名、状态((P)pending/(R)done)、预计维修日期、花费的时间(以分钟为单位) ,安排的描述特别要求我按报告日期升序对工作报告进行排序。我给你我的代码:
public class ParteDeTrabajo {
private String nombreCliente;
private LocalDate fechaParte;
private String nombreTrabajador;
private char estado;
private LocalDate fechaReparacion;
private double tiempoReparacion;
private String descripcionArreglo;
private ArrayList<Material> materiales;
public String getNombreCliente() {
return nombreCliente;
}
public void setNombreCliente(String nombreCliente) {
this.nombreCliente = nombreCliente;
}
public LocalDate getFechaParte() {
return fechaParte;
}
public void setFechaParte(LocalDate fechaParte) {
this.fechaParte = fechaParte;
}
public String getNombreTrabajador() {
return nombreTrabajador;
}
public void setNombreTrabajador(String nombreTrabajador) {
this.nombreTrabajador = nombreTrabajador;
}
public char getEstado() {
return estado;
}
public void setEstado(char estado) {
if (this.estado == 'p' || this.estado == 'R') {
this.estado = estado;
}
}
public LocalDate getFechaReparacion() {
return fechaReparacion;
}
public void setFechaReparacion(LocalDate fechaReparacion) {
this.fechaReparacion = fechaReparacion;
}
public double getTiempoReparacion() {
return tiempoReparacion;
}
public void setTiempoReparacion(double tiempoReparacion) {
if (this.tiempoReparacion >= 0) {
this.tiempoReparacion = tiempoReparacion;
}
}
public String getDescripcionArreglo() {
return descripcionArreglo;
}
public void setDescripcionArreglo(String descripcionArreglo) {
this.descripcionArreglo = descripcionArreglo;
}
public ArrayList<Material> getMateriales() {
return materiales;
}
public void setMateriales(ArrayList<Material> materiales) {
this.materiales = materiales;
}
public ParteDeTrabajo(String nombreCliente, LocalDate fechaParte, String nombreTrabajador, char estado, LocalDate fechaReparacion, double tiempoReparacion, String descripcionArreglo, ArrayList<Material> materiales) {
this.nombreCliente = nombreCliente;
this.fechaParte = fechaParte;
this.nombreTrabajador = nombreTrabajador;
setEstado(estado);
this.fechaReparacion = fechaReparacion;
setTiempoReparacion(tiempoReparacion);
this.descripcionArreglo = descripcionArreglo;
this.materiales = materiales;
}
public ParteDeTrabajo() {
this.nombreCliente = "";
this.fechaParte = null;
this.nombreTrabajador = "";
this.estado = 'p';
this.fechaReparacion = null;
this.tiempoReparacion = 0;
this.descripcionArreglo = "";
this.materiales = new ArrayList<Material>();
}
public String aniadirMateriales(Material a) {
materiales.add(a);
return "material introducidos";
}
@Override
public String toString() {
String str = "";
str += "Parte de trabajo" + "\n";
str += "fecha del parte: " + fechaParte + "\n nombre del cliente: " + nombreCliente + "\n Atendido por: " + nombreTrabajador
+ "\n estado del parter: " + estado + "\n fecha de reparacion: " + fechaReparacion + "\n se ha tardado: " + tiempoReparacion
+ "minutos \n ";
for (Material m : materiales) {
str += m.toString();
}
return str;
}
}
顾名思义,Comparable 接口用于使类的对象彼此可比。因此,您在要订购的集合中保留的元素必须符合它。
您必须执行以下操作:
然后你只需要对你的列表进行排序:
compareTo 方法可以返回三个值: 1 如果 a > b , -1 如果 a < b , 0 如果 a = b