2012-05-03 1 views
0

Я пытаюсь написать метод (findEquipements) для поиска оборудования по различным критериям, но у меня есть некоторые проблемы.концепция метода поиска в Java

  1. Если я добавляю результаты, следуя каждому критерию, у меня будет одно и то же оборудование много раз в моих результатах.

  2. Я хочу заказать результаты, чтобы первое оборудование в списке результатов получило наиболее согласованные критерии.

Код:

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

Это был мой интерфейс,

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 ; 
    } 
} 
+1

Используйте компаратор и отсортированный коллекции – SJuan76

+0

@elaich Вам нужно добавить метод 'equals'. –

ответ

0
  1. переопределение и хэш-код равен методы в классе SearchEquipement. Для переопределения рекомендуется переопределить toString.
  2. реализовать сопоставимый интерфейс и переопределить метод compareTo для упорядочения результатов.

  3. Используйте Collections.sort() правильно сортировки из пункты списка из "списка List"

поддержки кода -

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());