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