Java HashSet的contains()方法会测试字符串的相等性还是对象的身份?
- 论坛
- Java HashSet<String>的contains()方法会测试字符串的相等性还是对象的身份?
33 浏览
Java HashSet的contains()方法会测试字符串的相等性还是对象的身份?
假设我在Java中有以下这段代码:
HashSetwordSet = new HashSet (); String a = "hello"; String b = "hello"; wordSet.add(a);
wordSet.contains(b);
会返回true
还是false
?据我所理解,a
和b
虽然值相同,但它们指向不同的对象。因此contains()
应该返回false
。然而,当我运行这段代码时,它返回了true
。只要b
包含值"hello"
,无论b
的String对象来自何处,它始终会返回true
吗?我能保证这一点吗?如果不能,那么什么情况下我不能保证这一点?如果我想对除了String以外的对象进行类似的操作,会发生什么?