黑马程序员技术交流社区
标题:
equals 和 == 和 contains的异同
[打印本页]
作者:
刘 佳
时间:
2012-10-30 14:34
标题:
equals 和 == 和 contains的异同
equals调用了==的比较。
那么equals在哪些地方被复写?也就是equals什么时候跟==不同?
contains方法调用的是什么?他判断包含与否的条件是什么呢?很混淆。。
作者:
王永荣
时间:
2012-10-30 15:06
想要彻底了解,除了查api外,还可以看java src。我把它们copy出来
类String中的equals是这样的
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1
!= v2
)
return false;
i++;
}
return true;
}
}
return false;
}
将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
覆盖:类 Object 中的 equals
参数:
anObject - 与此 String 进行比较的对象。
返回:
如果给定对象表示的 String 与此 String 相等,则返回 true;否则返回 false。
类 Object 中的 equals
public boolean equals(Object obj) {
return (this == obj);
}
指示其他某个对象是否与此对象“相等”。
参数:
obj - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则返回 true;否则返回 false。
+++++++++++++++++++++++++
contains:
public boolean contains(CharSequence s) {
return indexOf(s.toString()) > -1;
}
当且仅当此字符串包含指定的 char 值序列时,返回 true。
参数:s - 要搜索的序列
返回:如果此字符串包含 s,则返回 true,否则返回 false
作者:
王豪
时间:
2012-10-30 15:59
简单理解就是
equals:是对变量或常量的值进行比较,比的是内容。
==:比的是两个变量或常量的内存地址值。
作者:
刘 佳
时间:
2012-10-30 16:18
王豪 发表于 2012-10-30 15:59
简单理解就是
equals:是对变量或常量的值进行比较,比的是内容。
==:比的是两个变量或常量的内存地址值。 ...
这个谁都知道
麻烦看看我的问题再回答好吗? 我问的是不同的地方,着重不同之处
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2