Resulta que quiero ordenar las personas por cargos y cuando hago dicha ordenación me borra la anterior persona con el cargo repetido.
Pongo el código:
Código Java:
Ver original
package app.contr.clases; public class Cargo implements Comparable<Cargo> { private int id; public static int autoID = 0; public int getId() { return id; } public void setId(int id) { this.id = id; } return nom; } this.nom = nom; } this.id = xid; this.nom = xnom.toUpperCase(); } @Override if(obj instanceof Cargo){ Cargo objc = (Cargo)obj; return objc.nom.equals(this.nom); } else return false; } @Override public int hashCode() { int hash = 17; hash = 31 * hash + this.nom.hashCode(); return hash; } @Override return nom; } @Override public int compareTo(Cargo o) { if (this.nom.compareTo(o.getNom()) > 0) return 1; else if (this.nom.compareTo(o.getNom()) < 0) return -1; else return 0; } public static int obtenerMAXID(){ return autoID + 1; } public static void incrementarID(){ autoID++; } }
Código Java:
Ver original
package app.contr.clases; public class Persona { private final int id; private Cargo cargo; public static int autoID = 0; public int getId() { return id; } return nom; } this.nom = nom; } public Cargo getCargo() { return cargo; } public void setCargo(Cargo cargo) { this.cargo = cargo; } this.id = xid; this.nom = xnom.toUpperCase(); this.cargo = xcargo; } @Override if(obj instanceof Persona){ Persona objp = (Persona)obj; return objp.nom.equals(this.nom); } else return false; } @Override public int hashCode() { int hash = 17; hash = 31 * hash + this.nom.hashCode(); return hash; } @Override return nom; } public static int obtenerMAXID(){ return autoID+1; } public static void incrementarID(){ autoID++; } }
Ordena personas por cargo de forma creciente:
Código Java:
Ver original
package app.vista.util; import app.contr.clases.Persona; import app.vista.facade.FacadeContr; import java.util.Comparator; public class OrdenarPerXCA implements Comparator<Integer> { @Override Persona p1 = FacadeContr.getInstance().ContrPersonas().findAll().get(o1); Persona p2 = FacadeContr.getInstance().ContrPersonas().findAll().get(o2); return p1.getCargo().getNom().compareTo(p2.getCargo().getNom()); } }
Ordena personas por cargo de forma decreciente:
Código Java:
Ver original
package app.vista.util; import app.contr.clases.Persona; import app.vista.facade.FacadeContr; import java.util.Comparator; public class OrdenarPerXCD implements Comparator<Integer> { @Override Persona p1 = FacadeContr.getInstance().ContrPersonas().findAll().get(o1); Persona p2 = FacadeContr.getInstance().ContrPersonas().findAll().get(o2); return p2.getCargo().getNom().compareTo(p1.getCargo().getNom()); } }
Necesito solucionar esta falla y no sé cómo, espero sus respuestas y saludos.