更新時(shí)間:2020-03-24 12:23:33 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽5359次
數(shù)組的查詢效率高,增刪效率低
數(shù)組中存儲(chǔ)元素的類型是統(tǒng)一的,在定義數(shù)組時(shí)就已經(jīng)確定了。另外,每一個(gè)元素在內(nèi)存中所占的空間大小是相同的,和元素?cái)?shù)據(jù)類型相關(guān)。數(shù)組實(shí)例指向數(shù)組首元素的內(nèi)存地址,要查找的元素只要通過(guò)數(shù)組下標(biāo)就可以快速的計(jì)算出數(shù)組元素在內(nèi)存中的偏移量,通過(guò)首元素內(nèi)存地址加上偏移量可以快速計(jì)算出要查找元素的內(nèi)存地址,通過(guò)內(nèi)存地址快速定位該元素,所以數(shù)組查找元素的效率較高。
但是需要注意的是,隨機(jī)的對(duì)數(shù)組進(jìn)行增刪元素效率較低,因?yàn)楫?dāng)增加的元素的時(shí)候,為了保證數(shù)組中元素在空間存儲(chǔ)上是有序的,所以被添加元素位置后面的所有元素都要向后移動(dòng)。同樣,刪除元素也是,后面所有的元素要向前移動(dòng)。所以數(shù)組的增刪元素的效率很低。
動(dòng)態(tài)增刪數(shù)組中的元素示意圖:
案例1:向數(shù)組中插入元素,在某個(gè)值前插入元素,前提條件是數(shù)組中沒(méi)有重復(fù)值
案例2:刪除數(shù)組中某個(gè)特定值的元素,前提條件是數(shù)組中沒(méi)有重復(fù)值
初始化一維數(shù)組有兩種方式:
1.靜態(tài)初始化
2.動(dòng)態(tài)初始化
靜態(tài)初始化:當(dāng)創(chuàng)建數(shù)組對(duì)象時(shí)同時(shí)也初始化了數(shù)組元素,同時(shí)數(shù)組的長(zhǎng)度也確定了,數(shù)組的長(zhǎng)度一旦設(shè)定就不能在更改了。
動(dòng)態(tài)初始化:先定義數(shù)組元素,然后對(duì)數(shù)組進(jìn)行賦值,是動(dòng)態(tài)的初始化。
獲取數(shù)組元素的值要通過(guò)數(shù)組的下標(biāo),數(shù)組的下標(biāo)從0開(kāi)始,數(shù)組的長(zhǎng)度可以通過(guò)數(shù)組對(duì)象的屬性length獲得。
案例3:靜態(tài)初始化并通過(guò)數(shù)組下標(biāo)獲取數(shù)組元素的值
案例4:動(dòng)態(tài)初始化,首先確定了數(shù)組的長(zhǎng)度,然后通過(guò)數(shù)組下標(biāo)對(duì)數(shù)組各元素賦值。
動(dòng)態(tài)初始化一維數(shù)組,會(huì)先在堆內(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)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)