私はマップを使用しており、値オブジェクトをマップ キーとして使用したいと考えています。また、リストを値として使用したいと考えています。値オブジェクトには、ファーストネーム、セカンドネームの 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を返します..助けてください..事前に感謝します