1、 ArrayList底層采用數(shù)組實現(xiàn),LinkedList底層采用雙向鏈表實現(xiàn)。
2、 當(dāng)執(zhí)行插入或刪除操作時,采用LinkedList比較好。
3、 當(dāng)執(zhí)行搜索操作時,采用ArrayList比較好。
4、 當(dāng)向ArrayList調(diào)價一個對象時,實際上就是將該對象放置到了ArrayList底層所維護的數(shù)組當(dāng)中;當(dāng)向LinkedList添加一個對象時,實際上LinkedList內(nèi)部會生成一個Node對象,該Node對象的結(jié)構(gòu)為:
Node
{
Object item;
Node next;
Node prev;
}
其中的Object類型的元素item就是我們向LinkedList中添加的元素,然后Node又構(gòu)造好了向前與向后的引用prev、next。最后將生成的這個Node對象添加到鏈表中。換句話說,LinkedList中所維護的是一個個Node對象。