मान लें कि मेरे पास दो अलग-अलग हैशसेट हैं जो नीचे दिखाए गए हैं कि मैं कैसे देख सकता हूं कि दो हैशसेट में एक ही तत्व हैं और इन दो हैशसेट समान हैं, संग्रह में तत्वों के क्रम से स्वतंत्र हैं, कृपया सलाह दें .. !!यह जांचने के लिए कि क्या दो संग्रहों में ऑर्डर से स्वतंत्र, समान तत्व होते हैं?
Set set1=new HashSet();
set.add(new Emp("Ram","Trainer",34000));
set.add(new Emp("LalRam","Trainer",34000));
और अन्य एक है ..
Set set2=new HashSet();
set.add(new Emp("LalRam","Trainer",34000));
set.add(new Emp("Ram","Trainer",34000));
कर्मचारी POJO है ...
class Emp //implements Comparable
{
String name,job;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
int salary;
public Emp(String n,String j,int sal)
{
name=n;
job=j;
salary=sal;
}
public void display()
{
System.out.println(name+"\t"+job+"\t"+salary);
}
public boolean equals(Object o)
{
Emp p=(Emp)o;
return this.name.equals(p.name)&&this.job.equals(p.job) &&this.salary==p.salary;
}
public int hashCode()
{
return name.hashCode()+job.hashCode()+salary;
}
/* public int compareTo(Object o)
{
Emp e=(Emp)o;
return this.name.compareTo(e.name);
//return this.job.compareTo(e.job);
// return this.salary-e.salary;
}*/
}
पहले परिभाषित "बराबर है"। बराबर संदर्भ या समतुल्य? यदि उत्तरार्द्ध, एएमपी कक्षा के लिए बराबर और हैशकोड परिभाषित है? – MJB
मान लीजिए कि 'एएमपी' के बराबर ओवरराइड है 'बराबर()' और 'हैशकोड() '(जो संभवतया करता है, हैश टेबल में इसकी उपस्थिति देता है) आप सेट पर गणना की तुलना कर सकते हैं, और उसके बाद प्रत्येक तत्व को जोड़ने का प्रयास करें एक दूसरे को सेट। यदि 'add() 'विधि कभी भी' सत्य 'लौटाती है, तो एक अंतर होता है। – dlev
यह किसी अन्य संग्रह की तुलना करने से अलग नहीं है। देखें: http://stackoverflow.com/questions/50098/comparing-two-collections-for-equality। हालांकि यह .NET है, जावा कार्यान्वयन काफी समान होना चाहिए। मैं डैनियल जेनिंग्स या mbillings उत्तर की सलाह देते हैं क्योंकि मुझे पूरा यकीन है कि उच्चतम वोट दिया गया जवाब माइक्रोस्कोफ्ट के उपयोग की शर्तों का उल्लंघन करता है। –