A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莫运飞 中级黑马   /  2012-4-5 12:22  /  5233 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

compare  与equals的区别是什么???

9 个回复

倒序浏览
你说的是equals和compareTo()的区别吧
equals 是比较两个值的大小,而且在不重写的情况下是比较两个值内容是否相等;
compareTo()一般用来 比较引用的对象的值  而且可以被重写;
在基本数据中,compareTo()是比较两个Character 对象;
在 Boolean中,是用boolean的实例于其它实例进行比较;
在String 中,则是按照字典顺序进行比较,返回的值是一个int 型。


回复 使用道具 举报
受教了 谢谢
回复 使用道具 举报
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。compare(T o1,T o2)比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。O1,O2必须具备一定的比较关系才可比较。
回复 使用道具 举报
对于基本类型, compareTo()比较的是他们的值; 对于对象, compareTo()比较的是对象引用的地址是否相等;
而equels()方法,对于基本类型,和compareTo()方法一样,但是对于对象,如果该对象类没有重写equals()方法,那么它就等同于Object的equals()方法,其实就是compareTo()方法,如果重写了该方法的话,就看他具体如何重写了,那么比较得到的结果就不一样。对于String类型,比较的是两个字符串的内容是否相同。
回复 使用道具 举报
对于基本类型,他们的左右都是一样的,比较值是否相等,对于对象,都是比较引用的地址值是否相等,当然,看你比较的逻辑,你可以适当重写这两个方法
回复 使用道具 举报
equals是Object类里的方法,它的作用是比较两个对象的内存地址是否相等,即比较两个对象是否是同一个对象,很多类都重写了这个方法,比如在String类里,该方法的作用是比较两个String对象的字符串的值是否相同。
compare是接口Comparator里的方法,用于比较两个对象之间是大小等于还是小于的关系,Comparator是一个比较器的接口,实现该接口就要写compare方法。
另一个重要的方法是compareTo方法,它是接口Comparable里的方法,具备Comparable接口的类都具备自然排序的功能,很多类都实现了该接口,compareTo方法用将自身与参数进行比较,其作用随着方法体的不同而不同,一般情况下都跟类里的数据成员有关系。
equals方法返回值是boolean,compare和compareTo的返回值是int,正数零和负数分别代表大小等于和小于比equals更为具体一点。
回复 使用道具 举报
溪风 初级黑马 2012-5-13 23:58:13
8#
本帖最后由 溪风 于 2012-5-14 00:06 编辑

compareTo比较的是两个类型的值,根据字母顺序进行比较,返回的是一个int类型的值,而equals比较的是两个对象的内容,顺序,返回的是一个boolean类型的值!
如:String s3="abcdefgt";
       String s1="abcdeftg";
compareTo比较的话,就是13;用equals比较的话,就是false,因为内容的顺序是不同的。
回复 使用道具 举报
看看...............
回复 使用道具 举报
学习了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马