1、默认容量? HashTable默认容量为11,计算hash的方式为如下: int hash = key.hashCode();int index = (hash & 0x7FFFFFFF) % tab.length; 根据证明,对素数或奇数直接取模,分布的会更均匀。其它Map的默认容量都为16, ...
分类:
其他好文 时间:
2019-12-25 11:36:09
阅读次数:
122
在Object类中equals方法如下: public boolean equals(Object obj) { return (this == obj); } 对于引用类型的对象,比较的是两者的内存地址。而hashCode:返回的是对象的内存地址。 在Object类的hashcode()方法上写到 ...
分类:
其他好文 时间:
2019-12-18 21:42:23
阅读次数:
77
举个小例子来看看,如果重写了equals而不重写hashcode会发生什么样的问题: 运行结果: 结果:null 如果我们已经对HashMap的原理有了一定了解,这个结果就不难理解了。尽管我们在进行get和put操作的时候,使用的key从逻辑上讲是等值的(通过equals比较是相等的),但由于没有重 ...
分类:
其他好文 时间:
2019-12-18 12:37:06
阅读次数:
57
1、hashCode的作用是获取哈希码,也称为散列码,是确定该对象在哈希表中的索引位置,是一个int类型的数值。 2、如果两个对象相等,那么hashCode一定相等,但是hashCode相等不代表两个对象相等。 3、以HashSet为例,当HserhSet加入新的对象时,首先会判断新对象的hashC ...
分类:
其他好文 时间:
2019-12-17 22:37:17
阅读次数:
112
这三个是我们初级开发面试必问面试题 1.List接口(有序) ArrayList:基于数组,增删慢,查找快,线程不安全,应该是开发中最常用到的 LinkedList:基于链表,增删快,查找慢,线程不安全 图中还缺少Vector,也是基于数组,线程安全,效率低。 2.Set接口 HashSet:快速定 ...
分类:
其他好文 时间:
2019-12-17 13:17:45
阅读次数:
137
toString官方文档 toString public String toString() 返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。 Object 类的 toString 方法 ...
分类:
编程语言 时间:
2019-12-17 00:09:36
阅读次数:
91
目录: 一、Map接口 二、Collection工具类 /* 分割线 */ 一、Map接口 Map中的key用Set来存放,不可重复。作为一个Map对象所对应的类,需重写hashCode和equals方法。 HashMap是Map接口使用频率最高的实现类。 添加、删除、修改操作: Object pu ...
分类:
编程语言 时间:
2019-12-16 13:00:01
阅读次数:
78
1.1. 代码清理1.2. 重写/实现方法1.3. getter/setter方法1.4. 代理方法1.5. toString,equals,hashCode方法1.6. 生成构造方法-Fields1.7. 生成构造方法-SuperClass1.8. 提取字符串1.9. 样式(风格)1.10. 代码 ...
分类:
其他好文 时间:
2019-12-14 13:59:32
阅读次数:
66
设计成不可变对象为了安全和高效 1.安全方面:举例说明:在文件操作或反射操作的时候需要传递字符串,如果是设计成可变的那么就会造成安全问题 2.高效:举例说明 字符串源码中会将hashcode缓冲下来,那么比如在HashMap中以字符串为key时第一次计算出hash值放缓冲中,以后直接就可以获取到这个 ...
分类:
编程语言 时间:
2019-12-14 13:36:40
阅读次数:
139
<palign="right">——日拱一卒,不期而至!</p>简介hash是我们工作中经常听到的词,比如哈希表、哈希函数、hashCode、HashTable、HashMap等等,那么它们之间到底有怎样的爱恨情仇呢?来一起看一看吧~~数组讲哈希表之前,我们先来看看数据结构的鼻祖——数组。数组比较简单,我就不多说了,大家都会都懂,见下图。数组的下标一般从
分类:
其他好文 时间:
2019-12-14 09:42:42
阅读次数:
84