http://www.reibang.com/p/63b01b6379fb
ArrayList和LinkedList
ArrayList底層是
數(shù)組
,數(shù)組容量是不可變的,因此ArrayList需要動(dòng)態(tài)擴(kuò)容
。在增加操作時(shí)刻炒,動(dòng)態(tài)擴(kuò)容會(huì)消耗時(shí)間付鹿。
由于ArrayList底層是數(shù)組夜只,因此每個(gè)元素都帶有索引
九榔,在查詢效率上要比LinkedList高很多
LinkedList底層是
雙向鏈表
芳室,新增元素就是在鏈表上新增節(jié)點(diǎn)板丽,不存在擴(kuò)容的問(wèn)題呈枉,因此在增刪改效率上較高
,但是由于不存在索引埃碱,每次查詢都要遍歷整個(gè)鏈表猖辫,查詢效率較低
- ArrayList優(yōu)化了擴(kuò)容機(jī)制,因此實(shí)際操作中乃正, ArrayList在執(zhí)行新增操作時(shí)住册,效率也
略高于
LinkedList
forEach和for循環(huán)的快慢
ArrayList底層是數(shù)組,所以使用for循環(huán)速度稍快瓮具,因?yàn)閒or循環(huán)用到了index索引荧飞。
LinkedList使用forEach循環(huán)較好