ArrayList
簡介
ArrayList底層為Object數組, 當不提供參數實, 默認使用空數組, 由于add 有可能會導致數組擴容, 當list的大小可預計時, 最好提供固定的大小以防止擴容
add過程
先確定當前數組大小夠不夠,不夠的話擴容, 每次變為之前1.5倍, 如果不在末尾插入, 會導致數組拷貝
remove過程
若非移動末尾項, 會導致數組拷貝
LinkedList
底層為雙向鏈表
add和remove代價小, 查詢代價大
ArrayList底層為Object數組, 當不提供參數實, 默認使用空數組, 由于add 有可能會導致數組擴容, 當list的大小可預計時, 最好提供固定的大小以防止擴容
先確定當前數組大小夠不夠,不夠的話擴容, 每次變為之前1.5倍, 如果不在末尾插入, 會導致數組拷貝
若非移動末尾項, 會導致數組拷貝
底層為雙向鏈表
add和remove代價小, 查詢代價大