java創(chuàng)建鏈表 好奇JAVA開發(fā)LinkedList插入數(shù)據(jù)真的比ArrayList快嗎?
好奇JAVA開發(fā)LinkedList插入數(shù)據(jù)真的比ArrayList快嗎?沒什么好好奇的。數(shù)據(jù)結(jié)構(gòu)決定了數(shù)據(jù)的質(zhì)量。將數(shù)據(jù)插入鏈表就是將節(jié)點(diǎn)添加到尾部。算法的時(shí)間復(fù)雜度為O(1),相當(dāng)于插入數(shù)據(jù)的時(shí)間
好奇JAVA開發(fā)LinkedList插入數(shù)據(jù)真的比ArrayList快嗎?
沒什么好好奇的。數(shù)據(jù)結(jié)構(gòu)決定了數(shù)據(jù)的質(zhì)量。
將數(shù)據(jù)插入鏈表就是將節(jié)點(diǎn)添加到尾部。算法的時(shí)間復(fù)雜度為O(1),相當(dāng)于插入數(shù)據(jù)的時(shí)間開銷是一個常數(shù)。
ArrayList是基于array的實(shí)現(xiàn)。插入數(shù)據(jù)時(shí),取決于陣列的容量是否足夠。如果容量足夠,則類似于鏈表插入的性能。但是,如果還不夠,就需要對其進(jìn)行擴(kuò)展,這相當(dāng)于創(chuàng)建一個新數(shù)組并復(fù)制原始數(shù)據(jù)。因此,在使用ArrayList時(shí),如果指定了適當(dāng)?shù)娜萘?,就必須擴(kuò)展容量,在使用中,不能擴(kuò)展或減少擴(kuò)展次數(shù),可以提高程序的性能。