`
qepipnu
  • 浏览: 76324 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java hascode

阅读更多
java hascode


Java中有两类集合(Collection),一类是List,一类是Set,前者是有序的,元素可以重复,后者是无序的,元素不可以重复

那么在set类型的集合中,如何判断元素是否重复呢,这就需要使用Object.equals方法,但如果元素很多了,添加一个新元素时,比较的次数

就很多,例如已经有100个元素了,添加第101个元素时,就要和前面的元素比较100次,效率很低。


JAVA中采用哈希表的原理,哈希是个人名,它提出了哈希算法的概念,哈希算法也称为散列算法,是将数据依据酸法直接指定到一个地址上,

hascode实际上是返回的对象存储的物理地址

当存储一个新元素时,先调用元素的hascode的方法,就一下指定到了它应该存放的物理地址上,如果这个地址上没有元素,就直接存储了,如

果有元素,会调用equals方法进行比较,如果相等的就不存了,不相等的话就保存到另外一个物理地址上

如果两个对象相等,则hascode一定相等

如果hascode想等,并不表示两个对象相等

分享到:
评论

相关推荐

    java集合知识-map、set等

    import java.util.LinkedHashSet; public class HashSetTest { public static void main(String[] args) { HashSet hs = new LinkedHashSet(); hs.add("hahah"); hs.add("hehe"); hs.add("heihei"); hs....

    详解Java中用于查找对象哈希码值的hashCode()函数

    在Java编程语言中,`hashCode()`函数是一个非常关键的方法,特别是在使用哈希数据结构如HashMap、HashSet和Hashtable时。这个函数的主要目的是为了高效地定位对象在哈希表中的位置。当我们谈论哈希码,实际上是在...

    java中hashcode()和equals()方法详解

    ### Java中`hashCode()`与`equals()`方法详解 #### 前言 在Java编程语言中,`hashCode()`和`equals()`方法是非常重要的概念,它们不仅对于深入理解Java内存管理至关重要,也是实现自定义类的关键部分之一。本文将...

    无Java开发Android应用

    2. `<application>`标签中的`android:hasCode="false"`表明应用本身不包含Java代码。 3. `<activity>`标签指定了使用`android.app.NativeActivity`作为主活动,这是一个内置的框架类,用于处理与NDK(Native ...

    Aspose.Words中提取域中有效内容

    此外,`Field.HasCode`和`Field.IsLocked`等属性可以帮助你更好地控制域的行为。 在`GetFieldContent`这个例子中,可能是一个示例程序,它读取输入的Word文档,提取所有域的解析结果,并可能将这些内容输出到控制台...

    CursoJava:NélioAlves的Udemy课程

    课程在Java课程中学习的内容老师:Nelio Alves平台:Udemy 涵盖的内容: Java语言简介; 顺序结构; 条件结构:if-else,开关盒; 重复结构; 运算符:算术,逻辑,三进制,递增,递减,赋值和按位; 面向对象编程的...

    lombok-1.16.16源码和文档

      默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。 @ToString   生成toString方法,默认情况下,会输出类名、所有属性,属性会...

    详细解读Android系统中的application标签

    - `android:hasCode`: 表示应用是否包含代码。通常为`true`,若为`false`,则应用无法执行。 - `android:icon`: 定义应用的图标,是一个图标的资源引用。 - `android:label`: 应用的显示名称,是字符串资源的引用...

Global site tag (gtag.js) - Google Analytics