Допустим, у меня есть этот код на 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"
?Всегда ли мне это гарантировано? Если нет, то когда мне это не гарантировано?А что если я захочу сделать что-то похожее с объектами, кроме Strings?