Будет ли метод contains () Java HashSet проверять равенство строк или идентичности объекта?

Допустим, у меня есть этот код на Java:

HashSet<String> wordSet = new HashSet<String>();
String a = "hello";
String b = "hello";
wordSet.add(a);

Будет ли wordSet.contains (b); return true или false ]? Насколько я понимаю, a и b относятся к разным объектам, даже если их значения одинаковы. Итак, contains () должен вернуть false . Однако когда я запускаю этот код, он возвращает true . Будет ли он всегда возвращать true независимо от того, откуда исходит объект String b , если b содержит значение "hello" ]? Всегда ли это гарантируется? Если нет, когда мне это не гарантируется? А что, если бы я хотел сделать что-то подобное с объектами, отличными от строк?

47
задан OkonX 23 January 2012 в 05:31
поделиться