资讯专栏INFORMATION COLUMN

HashCode集合介绍

MyFaith / 2718人阅读

摘要:方法的源码代表该方法调用的是本地操作系统的方法类继承了类所以可以使用类的方法方法的源码类的哈希值类重写类的方法重地通话重写方法

package com.itheima.demo03.hashCode;
/*

哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到地址,不是数据实际存储的物理地址)
在Object类有一个方法,可以获取对象的哈希值
int hashCode() 返回该对象的哈希码值。
hashCode方法的源码:
    public native int hashCode();
    native:代表该方法调用的是本地操作系统的方法

*/
public class Demo01HashCode {

public static void main(String[] args) {
    //Person类继承了Object类,所以可以使用Object类的hashCode方法
    Person p1 = new Person();
    int h1 = p1.hashCode();
    System.out.println(h1);//1967205423  | 1

    Person p2 = new Person();
    int h2 = p2.hashCode();
    System.out.println(h2);//42121758   |  1

    /*
        toString方法的源码:
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
     */
    System.out.println(p1);//com.itheima.demo03.hashCode.Person@75412c2f
    System.out.println(p2);//com.itheima.demo03.hashCode.Person@282ba1e
    System.out.println(p1==p2);//false

    /*
        String类的哈希值
            String类重写Obejct类的hashCode方法
     */
    String s1 = new String("abc");
    String s2 = new String("abc");
    System.out.println(s1.hashCode());//96354
    System.out.println(s2.hashCode());//96354

    System.out.println("重地".hashCode());//1179395
    System.out.println("通话".hashCode());//1179395
}

}
package com.itheima.demo03.hashCode;

public class Person extends Object{

//重写hashCode方法

@Override
public int hashCode() {
    return  1;
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75120.html

相关文章

  • 面试官:“你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hash

    摘要:介绍的作用是获取哈希码,也称为散列码它实际上是返回一个整数。所以具有相索引的对象,在该散列码位置处存在多个对象,我们必须依靠的和本身来进行区分。 1.hashCode介绍 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个散列码的作用是确定该对象在散列表中的索引位置,如果有看我的上一篇文章 什么是散列表,那么这里的散列码就相当于上文中根据首字母查...

    asce1885 评论0 收藏0
  • “==”、“equals()”、“hashcode()”之间的秘密

    摘要:它也是用来判断两个对象是否相等,所以也得分不同的情况来说明。什么是的作用是获取哈希码,也称为散列码它返回的一个整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。它定义在的中,这就意味着中的任何类都包含有函数。 前言 万丈高楼平地起,今天的聊点基础而又经常让人忽视的话题,比如==与equals()区别?为何当我们重写完equals()后也要有必要去重写hashcode()呢? .....

    Richard_Gao 评论0 收藏0
  • 1、List接口 2、Set接口 3、判断集合唯一性原理

    摘要:接口的特点接口的特点它是一个元素存取有序的集合。导致迭代器并不知道集合中的变化,容易引发数据的不确定性。枚举已被迭代器替代。集合取出元素的方式可以采用迭代器增强。 01List接口的特点 A:List接口的特点: a:它是一个元素存取有序的集合。 例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。 b:它是一个带有索引的...

    gnehc 评论0 收藏0
  • Java 性能调优指南之 Java 集合概览

    摘要:单线程集合本部分将重点介绍非线程安全集合。非线程安全集合框架的最新成员是自起推出的。这是标准的单线程阵营中唯一的有序集合。该功能能有效防止运行时造型。检查个集合之间不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【编者按】本文作者为拥有十年金融软件开发经验的 Mikhail Vorontsov,文章主要概览了所有标准 Java 集合类型。文章系国内 ITOM 管理平台 O...

    gnehc 评论0 收藏0
  • Java集合总结【面试题+脑图】,将知识点一网打尽!

    摘要:而在集合中,值仅仅是一个对象罢了该对象对本身而言是无用的。将这篇文章作为集合的总结篇,但觉得没什么好写就回答一些面试题去了,找了一会面试题又觉得不够系统。 前言 声明,本文用的是jdk1.8 花了一个星期,把Java容器核心的知识过了一遍,感觉集合已经无所畏惧了!!(哈哈哈....),现在来总结一下吧~~ 回顾目录: Collection总览 List集合就这么简单【源码剖析】 Ma...

    yearsj 评论0 收藏0

发表评论

0条评论

MyFaith

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<