在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.取得对象信息的方法:toString():输出的是对象的信息,一般需要在对象中重写此方法来打印具体属性。 2.对象相等判断方法:equals():判断是否是同一个对象,如果需要比较对象内容是否相等需要重写,与==相同。 简单数据类型的包装类都重写了equals方法比较的是值。 3.对象签名:ha ...
分类:
编程语言 时间:
2019-12-17 18:20:35
阅读次数:
84
HashMap 内部结构 内部是一个Node数组,每个Node都是链表的头,当链表的大小达到8之后链表转变成红黑树。 put操作 流程可以概括为:如果Node数组为空则先按照默认容量初始化数组。利用计算得到的hsah值确定数组下标, 1. 如果下标所在位置的Node为null,则直接新创建节点放在此 ...
分类:
其他好文 时间:
2019-12-17 17:53:14
阅读次数:
98
这三个是我们初级开发面试必问面试题 1.List接口(有序) ArrayList:基于数组,增删慢,查找快,线程不安全,应该是开发中最常用到的 LinkedList:基于链表,增删快,查找慢,线程不安全 图中还缺少Vector,也是基于数组,线程安全,效率低。 2.Set接口 HashSet:快速定 ...
分类:
其他好文 时间:
2019-12-17 13:17:45
阅读次数:
137
59、ArrayList和Vector的区别答:这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,,并且其中的数据是允许重复的,这是HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素(本
分类:
编程语言 时间:
2019-12-17 00:57:13
阅读次数:
86
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
原题链接在这里:https://leetcode.com/problems/find-the-town-judge/ 题目: In a town, there are N people labelled from 1 to N. There is a rumor that one of these ...
分类:
其他好文 时间:
2019-12-16 09:24:14
阅读次数:
95