0

さまざまな基準で機器を検索するメソッド(「findEquipements」)を作成しようとしていますが、いくつか問題があります。

  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 ;
    }
}
4

1 に答える 1

1
  1. SearchEquipementクラスのhashcodeおよびequalsメソッドをオーバーライドします。デバッグの目的で、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());
于 2012-05-04T16:15:47.013 に答える