
java
简一Jan
这个作者很懒,什么都没留下…
展开
-
HashMap原理及源码解读
HashMap原理HashMap内部是基于哈希表实现的键值对存储,继承 AbstractMap 并且实现了 Map 接口。 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的e...原创 2020-05-01 11:30:31 · 232 阅读 · 0 评论 -
HashMap的工作原理简单
HashMap 的存储机制 在 Java 1.8 中,如果链表的长度超过了 8,那么链表将转化为红黑树;链表长度低于6,就把红黑树转回链表; Java 1.8 中 HashMap 的不同 在 Java 1.8 中,如果链表的长度超过了 8,那么链表将转化为红黑树;链表长度低于6,就把红黑树转回链表; 发生 hash 碰撞时,Java 1.7 会在链表头部插入,而 Java 1.8...原创 2020-05-01 11:24:13 · 202 阅读 · 0 评论 -
HashMap和HashTable的区别
HashMap采用了数组+链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap比HashTable更快HashMap可以接受null键和值,而Hashtable则不能(原因就是equlas()方法需要对象,因为HashMap是后出的API经过处理才可以)...原创 2020-05-01 11:22:23 · 108 阅读 · 0 评论 -
ArrayList扩容机制
ArrayList每次扩容是原来的1.5倍。 数组进行扩容时,会将老数组中的元素重新拷贝一份到新的数组中,每次数组容量的增长大约是其原容量的1.5倍。 代价是很高的,因此在实际使用时,我们应该尽量避免数组容量的扩张。尽可能,就指定其容量,以避免数组扩容的发生。 创建方式方式不同,容量不同 初始化方式 容量 数量变化 List arrayList = new Array...原创 2020-05-01 11:00:55 · 398 阅读 · 0 评论