剛剛看了一下java源代碼與數據結構和算法相關的部分,一個是arraylist和數據儲存相關,一個是collections.sort排序方法和排序算法相關。
1. Arraylist的底層實現其實就是數組,針對數組進行add和remove操作。需要關注的就是Arraylist能夠自己擴充容量當數據的個數到達當前最大的範圍。
int newCapacity = (oldCapacity * 3)/2 + 1;//增加容量爲1.5倍加1
2. Collections.sort的底層實現也是爲數組排序,先從數組第二個數據和第一個數據比較,如果小的話,就交換位置;然後從數組的第三個數據和第二個數據比較,然後再和第一個數據進行比較;依次類推,一直比較到最後一個數據。需要注意的是如果數據的個數大於7的時候,會一半一半的進行遞歸排序。然後調整這兩半的數據的順序。