java編程中咱們用最多的幾個類能夠就是String,ArrayList,HashMap了.特別是ArrayList咱們幾乎無人不知,甚至有亂用的嫌疑了咱們來看看ArrayList和LinkedList的區別.故名思意ArrayList是數組表,LinkedList是連接表.ArrayList的全部數據是在同一個地址上,而LinkedList的每一個數據都擁有本身的地址.java
咱們來比較一下經常使用的數據的插入,數據的刪除,數據的更新,數據查詢.編程
數據插入 :好比在i節點插入一個新數據數組
ArrayList:循環到i節點,插入一個新數據,而後把i節點後面的全部的數據的index加1. ->操做多spa
LinkedList:循環到i節點,把前一個節點的後續連接到新數據,而後把新數據連接到後一個數據就能夠了. ->操做少orm
結論:平均效率LinkedList要好.ci
數據刪除 :好比刪除i節點數據it
ArrayList:循環到i節點,而後把i節點後面的全部的數據的index減1. ->操做多效率
LinkedList:循環到i節點,把前一個節點的後續連接到i節點的後一個數據就能夠了. ->操做少List
結論:平均效率LinkedList要好.循環
數據查詢 :好比查詢i節點數據
ArrayList:循環到i節點. ->操做少
LinkedList:循環到i節點. ->操做少,但因爲每一個數據的地址不同,查詢好比 ArrayList慢.
結論:平均效率 ArrayList要好.
數據更新 :好比更新i節點數據
ArrayList:循環到i節點,把數據更新. ->操做少
LinkedList:循環到i節點,把前數據更新. ->操做少,但因爲查詢速度沒有 ArrayList好,全部效率沒有 ArrayList好.
結論:平均效率ArrayList要好.
這樣咱們就能夠看到各有優勢.
若是查詢操做較多ArrayList的效果更好.若是刪除,插入較多LinkedList的效果較好.具體怎麼用還看具體的需求.