原创 Java中集合的擴容策略及實現的對比分析

本文將從源碼角度來分析和對比一下集合擴容相關的知識,涉及到的集合框架有:ArrayList,Vector,HashMap,ArrayMap,SparseArray。下面先從ArrayList開始。 ArrayList ArrayList

原创 紅黑樹在HashMap中的應用

在上一篇文章:紅黑樹(Red-Black Tree)解析 中我們瞭解了二叉查找樹以及紅黑樹的概念和特性,並且對查找、插入和刪除操作的實現源碼進行了詳細的剖析。其複雜的操作流程保證了紅黑樹的五條特性始終能夠被滿足,從而使得紅黑樹操作的時間複

原创 紅黑樹(Red-Black Tree)解析

這一篇我們來聊聊紅黑樹,寫這篇文章的起因是在閱讀HashMap源碼時,發現JDK1.8對於HashMap的實現引入了紅黑樹來處理哈希衝突以提高性能(戳這裏,有詳述),而紅黑樹的數據結構和操作都是較爲複雜的,自己看得過程中有些地方也反覆了多

原创 LinkedHashMap詳解及其在LruCache中的應用

在之前的文章紅黑樹在HashMap中的應用中,我們分析了HashMap的實現原理以及查找,插入和刪除操作的源碼,這一篇我們就來看看HashMap的一個子類:LinkedHashMap。 LinkedHashMap LinkedHashM