Скажем, у меня есть этот код в 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"
? Я всегда это гарантировал? Если нет, когда я не гарантирую это? И что, если бы я хотел сделать что-то подобное с объектами, отличными от строк?