4

私はマップを使用しており、値オブジェクトをマップ キーとして使用したいと考えています。また、リストを値として使用したいと考えています。値オブジェクトには、ファーストネーム、セカンドネームの 2 つのプロパティがあります。両方のプロパティが同じマップ内のキーと一致する場合、map.containsKey() を true として返したいです。

以下のようにコンパレータを使用しようとしました

public class comaparatorEx  implements Comparator<Test>{
    public static void main(String args[]){

        Map m= new HashMap<Test,List<String>>();
        Test t = new Test();
        t.setFirstname("vamsi");
        t.setSecondname("priya");

        List descriptionList=new ArrayList();
        descriptionList.add("description1");
        m.put(t, descriptionList);
        Test t2 = new Test();
        t2.setFirstname("vamsi");
        t2.setSecondname("priya");

        if(m.containsKey(t2)){
            System.out.println("user found");
        }           
    }

    public int compare(Test o1, Test o2) {
    if((o1.firstname.equals(o2.firstname) )&& o1.secondname.equals(o2.secondname))
        return 0;
    else return 1;
    }
}

これは私が使用している値オブジェクトです

public class  Test  {

String firstname;
String secondname;

public String getFirstname() {
    return firstname;
}
public void setFirstname(String firstname) {
    this.firstname = firstname;
}
public String getSecondname() {
    return secondname;
}
public void setSecondname(String secondname) {
    this.secondname = secondname;
}

}

しかし、それは私にはfalseを返します..助けてください..事前に感謝します

4

4 に答える 4