czesc
Stringi przechowywane są przez maszyne wirtualną w jednym miejscu (są singletonami) wiec kod ponizej zwroci true
String s1 = "Kot";
String s2 = "Kot";
return s1 == s2;
dlaczego więc ten sam zabieg przeprowadzony na HashSet.toString() już taki sam nie jest i zwroci false?
HashSet<Character> hSet1 = new HashSet<Character>();
HashSet<Character> hSet2 = new HashSet<Character>();
hSet1.add('a');
hSet1.add('b');
hSet1.add('c');
hSet2.add('a');
hSet2.add('b');
hSet2.add('c');
return hSet1.toString() == hSet2.toString();
zamiast tego trzeba uzywac .equals() ktore sprawdzi wewnetrzne pola obiektu
return hSet1.toString().equals( hSet2.toString() );