यहां नीचे उदाहरण में मैंने हैशसेट बनाया है जिसमें मैं तीन स्ट्रिंग मान एस 1, एस 2, एस 3 जोड़ रहा हूं हालांकि यह मुझे हैशसेट का आकार दिखाता है 1. क्यों?हैशसेट आकार समस्या
public static void main(String args[])
{
String s1="abc";
String s2=new String("abc");
String s3="abc";
Set setdemo=new HashSet();
setdemo.add(s1);
setdemo.add(s2);
setdemo.add(s3);
System.out.println("s1 hashcode -:"+ System.identityHashCode(s1));
System.out.println("s2 hashcode -:"+ System.identityHashCode(s2));
System.out.println("s3 hashcode -:"+ System.identityHashCode(s3));
System.out.println("Set size is -:"+setdemo.size());
}
उत्पादन:
s1 hashcode -:17523401
s2 hashcode -:8567361
s3 hashcode -:17523401
Set size is -:1
स्ट्रिंग समानता ओवरराइड बराबर() विधि के माध्यम से परीक्षण किया जाता है। वह विधि स्ट्रिंग की सामग्री को ध्यान में रखती है। यही कारण है कि एस 1! = एस 2, एस 2 सेट में नहीं होगा। s1.equals (एस 2) सच देता है। – Thihara