首页 > 编程语言 >Java 集合 为什么重写 HashCode 和 equals

Java 集合 为什么重写 HashCode 和 equals

时间:2023-03-04 15:57:07浏览次数:64  
标签:Java 相同 元素 equals HashCode 重写

# Java 集合 为什么重写 HashCode 和 equals

>Object 源码 中的 HashCode 和 equals方法:
>
>```
>public native int hashCode();
>
>public boolean equals(Object obj) {
> return (this == obj);
> }
>```
>
>hashCode native指的是 调用的是本地方法,如果子类补充下默认调用的是本地方法。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)
>
>在 HashSet 和 HashMap 中 所存放的元素都是不重复的 , 因此应该判断 元素是否相同,判断条件:
>
>1. HashCode 值是否相同
>2. 元素的值是否相同
>
>为了让相同的元素类的HashCode值相同,我们应该重写HashCode方法。
>
>为了判断元素是否相同 ,我们应该重写 equals 方法,在其中比较元素的值。

标签:Java,相同,元素,equals,HashCode,重写
From: https://www.cnblogs.com/oneblogs/p/17178425.html

相关文章

  • JavaScript Modal Image
    <!DOCTYPEhtml><html><head><title>JavaScriptModalImage</title></head><styletype="text/css"> .modal{ position:fixed; z-index:1......
  • Java GUI编程(包括awt,event)弹球小游戏功能扩充。
    原网址:https://gitee.com/EdsionKXXX/pinball-game-demo源代码:1packageAWT_GameDemo;234importjavax.swing.*;5importjava.awt.*;6importja......
  • java 线程同步
    多种方式可以完成线程同步,传统方法是关键字synchronized完成的,可以是同步方法也可以是同步代码块同步方法@Data@AllArgsConstructor@NoArgsConstructorclassMyThea......
  • java 创建线程
    继承ThreadclassMyThread1extendsThread{@Overridepublicvoidrun(){System.out.println("继承Thread...");}}publicclassTest1{......
  • java 线程状态
    线程状态java.lang.Thread.State里明确了线程的各个状态以及怎么进入和退出各个状态publicenumState{//初始化状态,线程创建之后的状态,newThread()之后进......
  • Java集合LinkedList源码中 实现 List 接口 却没有 在 LinkedList实现全部的 List接口
    Java集合LinkedList源码中实现List接口却没有在LinkedList实现全部的List接口方法普通类实现接口,应该实现接口中全部的抽象方法。难道是源码实现接口有什么特殊的......
  • Java 需要快速读出和写入的框架架构
    //对标牛客竞赛小白月赛109a题//importjava.util.*;importjava.io.*;publicclassMain{staticlongn;staticBufferedReaderbf=newBufferedReader(n......
  • java中 += 的作用
    编程语言中数据类型之间的区别,大的数据类型转换给小的会无法转换,所以在一些小的数据类型运算的时候一般会默认使用int以上的数据类型运算,当你使用byte,short,char类型运算......
  • java——spring boot集成RabbitMQ——高级特效——死信代码示例
    首先,消息成为死信的条件:       首先看消息生产者,生产者和之前的一样,没什么变化(注意:后面统一把nomal改为normal了):          消费......
  • java HashSet 原理
    其实就是HashMap,明白了HashMap就会明白HashSet原理创建HashSet底层就是创建了一个HashMapHashSet添加一个元素就是往HashMap添加一个元素HashSet获取元素,......