1. 程式人生 > >ArrayList只允許依次新增元素的原因

ArrayList只允許依次新增元素的原因

ArrayList雖然是基於陣列,但是卻不像陣列一樣能夠為任意下標的元素賦值,底層程式碼實現可以去看jdk原始碼,但是很多人可能還不知道設計者為什麼這樣做。

我來說一下原因:大家都知道ArrayList是動態的陣列,是可以改變大小的,問題就出在這裡,對於普通陣列來說無論你給哪一個元素賦值都會在記憶體中佔用固定的空間,但是ArrayList就不一樣了,如果你要賦值的是位於第1000位的元素,由於ArrayList的初始長度沒有這麼大,所以要進行擴容,但是在1000號元素以前的元素都是空的,白白浪費了很多空間(電腦可不知道你可能還會給前面的元素賦值)所以他不允許這樣做