国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

java中如何給listarray賦值 array與array list有什么區(qū)別?

array與array list有什么區(qū)別?數(shù)組和數(shù)組列表的異同首先,數(shù)組和數(shù)組列表的區(qū)別# 類型的變量在聲明時(shí)必須同時(shí)實(shí)例化(至少要初始化數(shù)組的大小),而ArrayList可以先聲明即可。比如:in

array與array list有什么區(qū)別?

數(shù)組和數(shù)組列表的異同

首先,數(shù)組和數(shù)組列表的區(qū)別

# 類型的變量在聲明時(shí)必須同時(shí)實(shí)例化(至少要初始化數(shù)組的大小),而ArrayList可以先聲明即可。

比如:

int[] array新數(shù)組[3]

或int[] array {1,2,3}

或ArrayList myList new ArrayList()

這些都是合法的,但是不能直接使用int[]數(shù)組。

#只能存儲(chǔ)同構(gòu)對(duì)象,ArrayList可以存儲(chǔ)異構(gòu)對(duì)象。

同構(gòu)對(duì)象是指同一類型的對(duì)象。如果聲明為int[]的數(shù)組只能存儲(chǔ)整形數(shù)據(jù),string[]只能存儲(chǔ)字符數(shù)據(jù),聲明為object[]的數(shù)組除外。

ArrayList可以存儲(chǔ)任何不同類型的數(shù)據(jù)(因?yàn)樗薭oxed Object類型的對(duì)象,實(shí)際上ArrayList使用了類似#34object[] _items#34這樣的私有字段來封裝對(duì)象)。

如何在CLR托管對(duì)中存儲(chǔ)#3

數(shù)組總是連續(xù)存儲(chǔ)的,而ArrayList并不總是連續(xù)存儲(chǔ)的。

#4初始化大小

數(shù)組對(duì)象的初始化必須只指定大小,創(chuàng)建的數(shù)組大小是固定的,而ArrayList的大小是可以動(dòng)態(tài)指定的,它的大小可以在初始化時(shí)指定,也可以不指定,也就是說對(duì)象的空間可以任意增加。

#5陣列can t隨意添加和刪除項(xiàng),而ArrayList可以在任何地方插入和刪除項(xiàng)。

第二,數(shù)組和ArrayList的相似之處

#1有索引,即任何項(xiàng)目都可以通過索引直接獲取和修改。

#2他們創(chuàng)建的所有對(duì)象都放在托管堆中。

#3可以枚舉自己(因?yàn)槎紝?shí)現(xiàn)了IEnumerable接口)。

注意:

在C#2.0中,建議盡量使用ArrayList,即命名空間中的ListltTgt,這樣既保證了類型安全,又因?yàn)闆]有打包和解包的過程,提高了對(duì)象處理的效率。

arraylist指定初始容量還會(huì)擴(kuò)容嗎?

經(jīng)常使用ArrayList。一般來說,在使用它的時(shí)候,會(huì)這樣聲明:

List arrayList new ArrayList()

如果如上所述使用默認(rèn)構(gòu)造方法,則初始容量設(shè)置為10。當(dāng)數(shù)組列表中的元素超過10個(gè)時(shí),內(nèi)存將被重新分配??臻g將數(shù)組的大小增加到16。

通過調(diào)試我們可以看到動(dòng)態(tài)增長的數(shù)字變化:10-GT16-GT25-GT38-GT58-GT88-GT…

例如:

新的數(shù)組列表(4)

將ArrayList的默認(rèn)容量設(shè)置為4。當(dāng)ArrayList中的元素超過四個(gè)時(shí),內(nèi)存空間將被重新分配,以將數(shù)組的大小增加到7。

通過調(diào)試,我們可以看到動(dòng)態(tài)增長的數(shù)字變化:4-gt7-gt11-gt17-gt26-gt…

那么容量變化的規(guī)律是什么呢?請(qǐng)看下面的公式:

((舊容量* 3)/2) 1

一旦容量發(fā)生變化,就會(huì)帶來額外的內(nèi)存開銷和時(shí)間開銷。

因此,在容量已知的情況下,建議按以下聲明:

新數(shù)組列表(CAPACITY_SIZE)