Java HashSet的contains()方法会测试字符串的相等性还是对象的身份?

33 浏览
0 Comments

Java HashSet的contains()方法会测试字符串的相等性还是对象的身份?

假设我在Java中有以下这段代码:

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

wordSet.contains(b);会返回true还是false?据我所理解,ab虽然值相同,但它们指向不同的对象。因此contains()应该返回false。然而,当我运行这段代码时,它返回了true只要b包含值"hello",无论b的String对象来自何处,它始终会返回true吗?我能保证这一点吗?如果不能,那么什么情况下我不能保证这一点?如果我想对除了String以外的对象进行类似的操作,会发生什么?

0