java基础——String的equals()方法和equalsIgnoreCase()方法及equal与==

转自zhiweianran的博客,为自己记录用~~~~

equals是重写object的方法,而
equalsIgnoreCase是String自己定义的方法
前者用于比较两个对象是否相等,而后者用于比较字符串忽略大小写的情况下是否相等


public boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 进行比较,不考虑大小写。如果两个字符串的长度相等,并且两个字符串中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。 在忽略大小写的情况下,如果下列至少一项为 true,则认为 c1 和 c2 这两个字符相同。 这两个字符相同(使用 == 运算符进行比较)。 对每个字符应用方法 Character.toUpperCase(char) 产生相同的结果。 对每个字符应用方法 Character.toLowerCase(char) 产生相同的结果。 参数: anotherString - 与此 String 进行比较的 String。 返回:如果参数不为 null,且这两个 String 在忽略大小写时相等,则返回 true;否则返回 false。


String.equals()对大小写敏感,而String.equalsIgnoreCase()忽略大小写
 例如:"ABC".equals("abc")是false

 "ABC".equalsIgnoreCase("abc")为ture

equal与==的区别:

“==”用于标胶基本数据类型(比较值,也可以比较内存的存放地址)

equals方法是继承自Object中的equals方法,初始行为是比较对象的内存地址,一般情况下都会被覆盖,比较对象的内容是否相等。

重写equals方法时,必须重写hashCode方法。如果没有重写,任何对象的hashCode()的返回值都是不相等的。

hashCode()与equals()生成算法的重写:

    1、尽量保证使用对象的同一个属性来生成hashCode()和equals();

    2、二者必须同时重写

例如:

public boolean equals(Object obj){
   if(this==obj)
      return true;
   if(obj==null)
      return false;
   if(getClass()!=obj.getClass())
      return false;
   Employee other=(Employee)obj;
   if(age!=other.age)
      return false;
   if(id==null){
      if(other.id!=null)
         return false;
   }else if(!id.equals(other.id))
      return false;
   return true;
}
public int hashCode(){
   final int prime=31;
   int result=1;
   result=prime*result+age;
   result=prime*result+((id==null)?0:id.hashCode());
   return result;
}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值