concepción de un método de búsqueda en Java

Estoy tratando de escribir un método ("findEquipements") para encontrar equipos por diferentes criterios, pero tengo algunos problemas.

  1. si agrego resultados, siguiendo cada criterio, tendré el mismo equipo muchas veces en mis resultados.

  2. Quiero ordenar los resultados, de modo que el primer equipo en la lista de resultados sea el que tenga los criterios más coincidentes.

Código:

public interface EquipementService {
    List<Equipement> findEquipements (SearchEquipement equipementSerach);
}

Esa fue mi interfaz,

public class SearchEquipement{

    private String marque ;
    private String type ;
    private Date dateAchat ;
    private String user ;

    public String getMarque(){
        return this.marque ;
    }

    public void setMarque(String marque){
        this.marque = marque ;
    }

    public String getType(){
        return this.type ;
    }

    public void setType(String type){
        this.type = type ;
    }

    public String getUser(){
        return this.user ;
    }

    public void setUser(String user){
        this.user = user ;
    }

    public Date getDateAchat(){
        return this.dateAchat ;
    }

    public void setDateAchat(Date dateAchat){
        this.dateAchat = dateAchat ;
    }
}

preguntado el 03 de mayo de 12 a las 22:05

Use un comparador y una colección ordenada -

@elaich Necesitas agregar equals método. -

1 Respuestas

  1. anula los métodos hashcode y equals en la clase SearchEquipement. Es aconsejable anular toString para fines de depuración.
  2. implemente una interfaz comparable y anule el método compareTo para ordenar los resultados en consecuencia.

  3. Use un Collections.sort() para ordenar correctamente los elementos de la lista de la "Lista de lista"

código de apoyo -

 public class EquipmentComparable implements Comparator<SearchEquipement>{
  @Override
  public int compare(Equipement eq1, Equipement eq2) {
        //todo 
  }
 }


   List<Equipement> equipmentList = EquipementService.findEquipements  (equipementSerach);
   Collections.sort(equipmentList,new EquipmentComparable());

contestado el 04 de mayo de 12 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.