更新時(shí)間:2020-03-24 12:23:33 來源:動(dòng)力節(jié)點(diǎn) 瀏覽5689次
數(shù)組的查詢效率高,增刪效率低
數(shù)組中存儲元素的類型是統(tǒng)一的,在定義數(shù)組時(shí)就已經(jīng)確定了。另外,每一個(gè)元素在內(nèi)存中所占的空間大小是相同的,和元素?cái)?shù)據(jù)類型相關(guān)。數(shù)組實(shí)例指向數(shù)組首元素的內(nèi)存地址,要查找的元素只要通過數(shù)組下標(biāo)就可以快速的計(jì)算出數(shù)組元素在內(nèi)存中的偏移量,通過首元素內(nèi)存地址加上偏移量可以快速計(jì)算出要查找元素的內(nèi)存地址,通過內(nèi)存地址快速定位該元素,所以數(shù)組查找元素的效率較高。
但是需要注意的是,隨機(jī)的對數(shù)組進(jìn)行增刪元素效率較低,因?yàn)楫?dāng)增加的元素的時(shí)候,為了保證數(shù)組中元素在空間存儲上是有序的,所以被添加元素位置后面的所有元素都要向后移動(dòng)。同樣,刪除元素也是,后面所有的元素要向前移動(dòng)。所以數(shù)組的增刪元素的效率很低。
動(dòng)態(tài)增刪數(shù)組中的元素示意圖:

案例1:向數(shù)組中插入元素,在某個(gè)值前插入元素,前提條件是數(shù)組中沒有重復(fù)值

案例2:刪除數(shù)組中某個(gè)特定值的元素,前提條件是數(shù)組中沒有重復(fù)值

初始化一維數(shù)組有兩種方式:
1.靜態(tài)初始化
2.動(dòng)態(tài)初始化
靜態(tài)初始化:當(dāng)創(chuàng)建數(shù)組對象時(shí)同時(shí)也初始化了數(shù)組元素,同時(shí)數(shù)組的長度也確定了,數(shù)組的長度一旦設(shè)定就不能在更改了。
動(dòng)態(tài)初始化:先定義數(shù)組元素,然后對數(shù)組進(jìn)行賦值,是動(dòng)態(tài)的初始化。
獲取數(shù)組元素的值要通過數(shù)組的下標(biāo),數(shù)組的下標(biāo)從0開始,數(shù)組的長度可以通過數(shù)組對象的屬性length獲得。
案例3:靜態(tài)初始化并通過數(shù)組下標(biāo)獲取數(shù)組元素的值

案例4:動(dòng)態(tài)初始化,首先確定了數(shù)組的長度,然后通過數(shù)組下標(biāo)對數(shù)組各元素賦值。

動(dòng)態(tài)初始化一維數(shù)組,會先在堆內(nèi)存中為數(shù)組分配空間,并且為數(shù)組中的每一個(gè)元素賦默認(rèn)值。

以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)學(xué)習(xí):Java數(shù)組下標(biāo)”的內(nèi)容,希望對大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀

初級 202925

初級 203221

初級 202629

初級 203743