Скажем, у меня есть этот код в Java:
HashSet<String> wordSet = new HashSet<String>();
String a = "hello";
String b = "hello";
wordSet.add(a);
Будет ли wordSet.contains(b); возвращать true или false? Насколько я понимаю, a и b относятся к разным объектам, даже если их значения одинаковы. Поэтому contains() должен возвращать false. Однако, когда я запускаю этот код, он возвращает true. Будет ли он всегда возвращать true независимо от того, где объект String b исходит из тех пор, пока b содержит значение "hello"? Я всегда это гарантировал? Если нет, когда я не гарантирую это? И что, если бы я хотел сделать что-то подобное с объектами, отличными от строк?