黑马程序员技术交流社区
标题:
compare 与equals的区别是什么???
[打印本页]
作者:
莫运飞
时间:
2012-4-5 12:22
标题:
compare 与equals的区别是什么???
compare 与equals的区别是什么???
作者:
张立江
时间:
2012-4-5 12:32
你说的是equals和compareTo()的区别吧
equals 是比较两个值的大小,而且在不重写的情况下是比较两个值内容是否相等;
compareTo()一般用来 比较引用的对象的值 而且可以被重写;
在基本数据中,compareTo()是比较两个Character 对象;
在 Boolean中,是用boolean的实例于其它实例进行比较;
在String 中,则是按照字典顺序进行比较,返回的值是一个int 型。
作者:
莫运飞
时间:
2012-4-5 12:52
受教了 谢谢
作者:
张志阳
时间:
2012-4-5 13:07
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。compare(T o1,T o2)比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。O1,O2必须具备一定的比较关系才可比较。
作者:
莫运飞
时间:
2012-4-5 16:44
对于基本类型, compareTo()比较的是他们的值; 对于对象, compareTo()比较的是对象引用的地址是否相等;
而equels()方法,对于基本类型,和compareTo()方法一样,但是对于对象,如果该对象类没有重写equals()方法,那么它就等同于Object的equals()方法,其实就是compareTo()方法,如果重写了该方法的话,就看他具体如何重写了,那么比较得到的结果就不一样。对于String类型,比较的是两个字符串的内容是否相同。
作者:
程旦
时间:
2012-4-5 17:00
对于基本类型,他们的左右都是一样的,比较值是否相等,对于对象,都是比较引用的地址值是否相等,当然,看你比较的逻辑,你可以适当重写这两个方法
作者:
孙利川
时间:
2012-4-5 18:18
equals是Object类里的方法,它的作用是比较两个对象的内存地址是否相等,即比较两个对象是否是同一个对象,很多类都重写了这个方法,比如在String类里,该方法的作用是比较两个String对象的字符串的值是否相同。
compare是接口Comparator里的方法,用于比较两个对象之间是大小等于还是小于的关系,Comparator是一个比较器的接口,实现该接口就要写compare方法。
另一个重要的方法是compareTo方法,它是接口Comparable里的方法,具备Comparable接口的类都具备自然排序的功能,很多类都实现了该接口,compareTo方法用将自身与参数进行比较,其作用随着方法体的不同而不同,一般情况下都跟类里的数据成员有关系。
equals方法返回值是boolean,compare和compareTo的返回值是int,正数零和负数分别代表大小等于和小于比equals更为具体一点。
作者:
溪风
时间:
2012-5-13 23:58
本帖最后由 溪风 于 2012-5-14 00:06 编辑
compareTo比较的是两个类型的值,根据字母顺序进行比较,返回的是一个int类型的值,而equals比较的是两个对象的内容,顺序,返回的是一个boolean类型的值!
如:String s3="abcdefgt";
String s1="abcdeftg";
compareTo比较的话,就是13;用equals比较的话,就是false,因为内容的顺序是不同的。
作者:
徐传任
时间:
2012-9-19 19:42
看看...............
作者:
杨伟斌
时间:
2012-12-4 10:55
学习了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2