都實(shí)現(xiàn)了List接口缴允,但在用法上有區(qū)別
1.ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu)跳座,LinkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)轧铁。
2.對(duì)于隨機(jī)訪問get和set每聪,ArrayList優(yōu)于LinkedList,因?yàn)锳rrayList可以隨機(jī)定位齿风,而LinkedList要移動(dòng)指針一步一步的移動(dòng)到節(jié)點(diǎn)處药薯。(參考數(shù)組與鏈表來(lái)思考)
3、當(dāng)插入的數(shù)據(jù)量很小時(shí)救斑,兩者區(qū)別不太大童本,當(dāng)插入的數(shù)據(jù)量大時(shí),大約在容量的1/10之前脸候,LinkedList會(huì)優(yōu)于ArrayList穷娱,在其后就劣與ArrayList绑蔫,且越靠近后面越差。一般首選用ArrayList泵额,由于LinkedList可以實(shí)現(xiàn)棧配深、隊(duì)列以及雙端隊(duì)列等數(shù)據(jù)結(jié)構(gòu),所以當(dāng)特定需要時(shí)候嫁盲,使用LinkedList篓叶,當(dāng)數(shù)據(jù)量大的時(shí)候,如果只需要在靠前的部分插入或刪除數(shù)據(jù)羞秤,那也可以選用LinkedList缸托,反之選擇ArrayList反而效率更高。