有勇气的牛排博客
☰

java学习笔记 集合 --- Set 哈希值

有勇气的牛排 1712 Java 2021-08-20 00:14:44

知止自律打卡-微信小程序APP
一款微信自律打卡小程序,支持自定义打卡项目、习惯记录、项目日记、专注计时与数据统计。自律打卡、学习打卡、读书打卡、健身打卡、运动打卡、减肥打卡、戒色打卡、养生打卡、戒烟、戒酒、戒熬夜等多种场景。万能打卡模板自由创建。可自定义每日打卡目标,记录习惯连续天数,可视化追踪成长进度。
了解产品详情 →
微信搜索「知止自律打卡」
知止自律打卡微信小程序

1 Set哈希值

哈希值:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值

Object类中有一个方法可以获取对象哈希值

(1)public int hashCode:返回对象的哈希码值

特点

(1)同一个对象多次调用hashCode()方法返回的哈希值时相同的

(2)默认情况下,不同对象的哈希值时不同的,而重写hashCode()方法,可以实现让不同对象的哈希值相同

package Hash;

public class HashDemo {
    public static void main(String[] args) {

        // 创建学生对象
        Student s1 = new Student("灰太狼", 20);

        // 同一个对象多次调用 hashCode() 方法的哈希值时相同的
        System.out.println(s1.hashCode());  // 460141958
        System.out.println(s1.hashCode());  // 460141958
        System.out.println("--------");

        Student s2 = new Student("灰太狼", 20);

        // 默认情况下,不同对象的哈希值时不同的
        // 通过方法重写,可以实现不同对象的哈希值是相同的
        System.out.println(s2.hashCode());  // 1163157884
        System.out.println("--------");

        System.out.println("hello".hashCode()); // 99162322
        System.out.println("world".hashCode()); // 113318802
        System.out.println("java".hashCode());  // 3254818
        System.out.println("--------");

        // 这里有些版本是 不同汉字 相同哈希
        System.out.println("牛排".hashCode());    // 933015
        System.out.println("勇气".hashCode());    // 684589

    }
}

参考地址
https://www.bilibili.com/video/BV18J411W7cE?p=239

标签:

×
×