hashCode方法

简单测试了一下结果如下

1.hashCode码由内容决定的

2.需要组合多个散列值时可以使用Objects.hash()这种方法

3.数组可以使用Arrays.hashCode()方法

 

理解可能不到位以上待补充

 

代码如下

package Date_11_9;

public class testHashCode {
    public static void main(String args[]){
        String s = "OK";
        StringBuilder sb = new StringBuilder("s");
        System.out.println(s.hashCode() + " " + sb.hashCode());

        String t = new String("OK");
        StringBuilder tb = new StringBuilder("s");
        System.out.println(t.hashCode() + " " + tb.hashCode());

        String a = "a";
        String b = "a";
        System.out.println(a.hashCode());
        System.out.println(b.hashCode());

        /*
        * 通过输出发现字符串s 和字符串t 的hashCode码是一致的,这是因为字符串的散列码是由内容决定的
        * 内容一致,散列码也是一致的
        * 
        * 但是在StringBuilder中两个对象的内容一致但是hashCode不一致
        * 这是因为在StringBuilder中没有定义hashCode方法,
        * 它的hashCode码是由Object类的默认的hashCode方法导出的对象的存储地址
        * */
        testhashcode1 test = new testhashcode1("钟镜清",20);
        System.out.println(test.hashCode());

        int[] i = new int[3];
        int[] n = i;
        System.out.println(i.hashCode() + " " + n.hashCode());
        System.out.println(i.equals(n));

    }
}


package Date_11_9;

import java.util.Objects;

class testhashcode1{
    String name;
    int age;

    public testhashcode1(String name, int age){
        this.name = name;
        this.age = age;
    }

    @Override
    public int hashCode(){
        return Objects.hash(name,age);  //需要组合多个散列值时可以使用这种方法
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值