前言 万丈高楼平地起,今天的聊点基础而又经常让人忽视的话题,比如“==”与“equals()”区别?为何当我们重写完"equals()"后也要有必要去重写"hashcode()"呢? ... 带着这些问题,我们一起来探究一下。 概念 "==":它主要是判断符号两边的“对象”的值是否相等,而这里的“值 ...
分类:
其他好文 时间:
2019-04-20 12:39:45
阅读次数:
131
HashMap HashSet 实现了Map接口 实现了Set接口 储存键值对 仅仅存储对象 使用put()方法添加元素 使用add()方法添加元素 使用键对象来计算hashcode值 使用成员对象来计算hashcode值,两个对象hashcode可能相同,所以equals()方法用来判断对象的相等 ...
分类:
其他好文 时间:
2019-04-20 09:46:10
阅读次数:
133
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允 ...
分类:
其他好文 时间:
2019-04-19 00:41:30
阅读次数:
176
增加红黑树这个存储结构 在Java8中,为什么要增加红黑树这种数据结构来进行存储,而不是全部使用链表来进行存储呢? 1.因为攻击者可以构造大量具有相同hashCode的内容,使其全部放在同一个列表中,这样,在查找的时候,所花费的时间会很长。这个时候,如果采用红黑树这个结构来进行存储,那么其查找的效率 ...
分类:
编程语言 时间:
2019-04-19 00:40:51
阅读次数:
181
HashMap集合put元素的原理:(1)计算key的hashCode(2)将key的hashCode作为计算因子,通过哈希算法计算HashMap的数组下标index(3)如果index下标的数组元素为空,直接put(新增元素)(4)如果index下标的数组元素不为空,调用key的equal方法,判 ...
分类:
其他好文 时间:
2019-04-18 14:54:56
阅读次数:
199
【JAVA编程】equals相等hashcode必然相等,反之不然 2018年03月28日 10:35:47 天路漫漫 阅读数:1786更多 个人分类: 【JAVA】 【JAVA编程】equals相等hashcode必然相等,反之不然 2018年03月28日 10:35:47 天路漫漫 阅读数:17 ...
分类:
编程语言 时间:
2019-04-16 14:15:25
阅读次数:
163
Java常用工具类 一、Object类 java.lang.Object Object类是所有类直接或间接的父类 常用的方法: toString():以字符串形式返回对象的文本信息; hashCode():返回该对象的哈希值; getClass():返回对象的类类型; equals(Object o ...
分类:
编程语言 时间:
2019-04-14 09:49:12
阅读次数:
140
一.对象的整体结构 引用地址 1.对象头 图中可以看出对象头分为MarkWord与Class对象指针,其中MarkWord标识了对象运行时的各种属性与状态值,哈希码(HashCode).GC分代 年状 态标志、线程持有的锁、偏向线程ID、偏向时间戳等. 而Class对象指针则指向一个类在被类加载器读 ...
分类:
其他好文 时间:
2019-04-10 20:24:45
阅读次数:
195
1 如果两个对象相同,那么它们的hashCode值一定要相同。也告诉我们重写equals方法,一定要重写 hashCode方法,同一个对象那么hashcode就是同一个(同一个对象什么都是相同的)。2 如果两个对象的hashCode相同,它们并不一定相同,这里的对象相同指的是用eqauls方法比较。 ...
分类:
其他好文 时间:
2019-04-10 13:39:13
阅读次数:
142
Lombok插件,省去了许多没必要的get,set,toString,equals,hashCode代码,简化了代码编写,减少了代码量 安装 IDEA: File—setting—plugin–搜索lombok–安装--重启 Eclipae: 1.下载lombok.jar包https://proje ...
分类:
其他好文 时间:
2019-04-08 13:19:01
阅读次数:
1043