java容器类研究
gkmmg
小菜鸡
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap底层分析
最近整理HashMap的知识,发现HashMap的底层数据结构在jdk1.8版本之后发生了变化,在1.8版本之前,和散列表的一样,是由散列桶(数组)+链表组成的。在1.8版本之后,结构如下图所示,由散列桶(数组)+链表+红黑树实现。先贴出HashMap中数据结构的定义/* 部分HashMap类中属性的定义 */ transient HashMap.Node<K, V>[] table;...原创 2018-03-22 00:14:53 · 344 阅读 · 0 评论 -
关于HashSet,LinkedHashSet ,TreeSet
HashSet这个类,表面上是Set接口的实现类,继承自Collection,但却是基于HashMap来实现的。之所以和List、Queue同属于Collection子类,我想是因为他们都是线性结构的吧。而Map类Key的唯一性正好适用于Set集合的唯一性的特性,所以Set类设计者就直接拿Map来用了吧。来看下HashSet类的源码: /** * 如果此set不包含任何元素,则返回...原创 2018-04-24 00:27:54 · 295 阅读 · 0 评论 -
为什么覆盖equals时也要覆盖hashCode方法
参考自《effective java》第九条。现在假设我们有一个矩形类Rectangle public class Rectangle { private int length; private int width; public Rectangle(int length, int width) { this.length = length; ...原创 2018-05-13 01:23:10 · 2548 阅读 · 3 评论
分享