2012-05-03 36 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. 重寫了hashCode和等於在SearchEquipement類的方法。爲了調試,建議覆蓋toString。
  2. 實現了一個可比較的接口並重寫compareTo方法來相應地對結果進行排序。

  3. 使用Collections.sort()來正確地分類時的「列表清單」

支持代碼的列表項 -

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