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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 炉海佳 高级黑马   /  2013-3-24 15:34  /  3802 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 炉海佳 于 2013-3-24 20:22 编辑

如题 ,主要是什么情况下怎么用

7 个回复

倒序浏览
compareTo   是判断一个对象的值是否包含包含另一个对象的值
比如 " itheihei".compareto( "it ")就是判断itheihei中是否包含it
equals   是比较两个对象的内容
比如
  String str1= "love "
  String str2= "love"
而str1.equals(str2)是返回true的。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
compareTo   是判断一个对象的值是否包含包含另一个对象的值
比如 " itheihei".compareto( "it ")就是判断itheihei中是否包含it
equals   是比较两个对象的内容
比如
  String str1= "love "
  String str2= "love"
而str1.equals(str2)是返回true的。
回复 使用道具 举报
柳 德 彬 发表于 2013-3-24 19:31
compareTo   是判断一个对象的值是否包含包含另一个对象的值
比如 " itheihei".compareto( "it ")就是判断i ...

是这样的嘛??我怎么记得好像compareTo好像不是这样的!你说得是判断一个对象的值是否包含另外一个对象的值是吧!!那么我们在Person类比较姓名的时候,覆写compare方法!比较两个对象的姓名!这时候并没有包含关系,而比较的是元素的自然顺序!这和包含不包含没关系吧!
回复 使用道具 举报
相等其实就是完全包含了嘛,
回复 使用道具 举报
把API文档的内容发给你吧
这是String中compareTo的定义
public int compareTo(String anotherString)

    按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。

TreeSet判断比较性主要来自两个方面一个是元素自身的compareTo()(来自Comparable接口),一个是通过构造函数载入的实现Comparator接口的比较器的compare(),下面再给出Comparable
API文档中Comparable项关于compareTo的说明里,有这么一句话:
强烈推荐 (x.compareTo(y)==0) == (x.equals(y)) 这种做法,但不是 严格要求这样做。一般来说,任何实现 Comparable 接口和违背此条件的类都应该清楚地指出这一事实。推荐如此阐述:“注意:此类具有与 equals 不一致的自然排序
这样一来compareTo和equals的关系就很明了了compareTo是用来比较自然顺序的,若大于返回正数,小于返回负数,等于则返回0,而是否等于0,准确来说,和equals的结果是无关的,当然,大部分情况,还是要求和equals结果一致,那什么时候可以不一致呢?
我们知道TreeSet是实现Set结果的,Set的特点是无序,元素不重复。那TreeSet是怎么判断不重复的呢?老毕视频里应该明确讲过,判断标准是先用红黑树判断,换言之可以使compareTo判断,若判断结果为0,则继续用equals判断,所以equals是对compareTo判断元素相等后的补充方案,在某些特殊情况,比如我们想放入几个实际内容相等的元素进TreeSet时,就可以将compareTo的结果与equals结果不相关联,当然,这种情况,我们一般称为非主流情况,哈哈。
回复 使用道具 举报
。。。。。。。上面只是引用了部分API内容,所以。。。。。。。。。版主,我要加分!
回复 使用道具 举报
2012 中级黑马 2013-9-3 21:42:03
8#
返回类型不同,比较方式不同。comPareTO返回类型为int,比较顺序;equals返回类型为boolean,比较异同。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马