資源描述:
《java中數(shù)組列表arraylist的使用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、java中數(shù)組列表ArrayList的使用2006-12-0511:38:46
2、分類:軟件開發(fā)
3、標(biāo)簽:
4、字號大中小訂閱1、什么是ArrayListArrayList就是傳說中的動態(tài)數(shù)組,用MSDN中的說法,就是Array的復(fù)雜版本,它提供了如下一些好處:動態(tài)的增加和減少元素實現(xiàn)了ICollection和IList接口靈活的設(shè)置數(shù)組的大小2、如何使用ArrayList最簡單的例子:ArrayListList=newArrayList();for(inti=0;i<10;i++)//給數(shù)組增加10個Int元素List.Add(i);//..程序做一些處理List.RemoveA
5、t(5);//將第6個元素移除for(inti=0;i<3;i++)//再增加3個元素List.Add(i+20);Int32[]values=(Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的數(shù)組這是一個簡單的例子,雖然沒有包含ArrayList所有的方法,但是可以反映出ArrayList最常用的用法3、ArrayList重要的方法和屬性1)構(gòu)造器ArrayList提供了三個構(gòu)造器:publicArrayList();默認(rèn)的構(gòu)造器,將會以默認(rèn)(16)的大小來初始化內(nèi)部的數(shù)組publicArrayList(IColle
6、ction);用一個ICollection對象來構(gòu)造,并將該集合的元素添加到ArrayListpublicArrayList(int);用指定的大小來初始化內(nèi)部的數(shù)組2)IsSynchronized屬性和ArrayList.Synchronized方法IsSynchronized屬性指示當(dāng)前的ArrayList實例是否支持線程同步,而ArrayList.Synchronized靜態(tài)方法則會返回一個ArrayList的線程同步的封裝。如果使用非線程同步的實例,那么在多線程訪問的時候,需要自己手動調(diào)用lock來保持線程同步,例如:ArrayListlist=newArrayLi
7、st();//...lock(list.SyncRoot)//當(dāng)ArrayList為非線程包裝的時候,SyncRoot屬性其實就是它自己,但是為了滿足ICollection的SyncRoot定義,這里還是使用SyncRoot來保持源代碼的規(guī)范性{list.Add(“AddaItem”);}如果使用ArrayList.Synchronized方法返回的實例,那么就不用考慮線程同步的問題,這個實例本身就是線程安全的,實際上ArrayList內(nèi)部實現(xiàn)了一個保證線程同步的內(nèi)部類,ArrayList.Synchronized返回的就是這個類的實例,它里面的每個屬性都是用了lock關(guān)鍵
8、字來保證線程同步。3)Count屬性和Capacity屬性Count屬性是目前ArrayList包含的元素的數(shù)量,這個屬性是只讀的。Capacity屬性是目前ArrayList能夠包含的最大數(shù)量,可以手動的設(shè)置這個屬性,但是當(dāng)設(shè)置為小于Count值的時候會引發(fā)一個異常。4)Add、AddRange、Remove、RemoveAt、RemoveRange、Insert、InsertRange這幾個方法比較類似Add方法用于添加一個元素到當(dāng)前列表的末尾AddRange方法用于添加一批元素到當(dāng)前列表的末尾Remove方法用于刪除一個元素,通過元素本身的引用來刪除RemoveAt方
9、法用于刪除一個元素,通過索引值來刪除RemoveRange用于刪除一批元素,通過指定開始的索引和刪除的數(shù)量來刪除Insert用于添加一個元素到指定位置,列表后面的元素依次往后移動InsertRange用于從指定位置開始添加一批元素,列表后面的元素依次往后移動另外,還有幾個類似的方法:Clear方法用于清除現(xiàn)有所有的元素Contains方法用來查找某個對象在不在列表之中其他的我就不一一累贅了,大家可以查看MSDN,上面講的更仔細(xì)5)TrimSize方法這個方法用于將ArrayList固定到實際元素的大小,當(dāng)動態(tài)數(shù)組元素確定不在添加的時候,可以調(diào)用這個方法來釋放空余的內(nèi)存。6)
10、ToArray方法這個方法把ArrayList的元素Copy到一個新的數(shù)組中。4、ArrayList與數(shù)組轉(zhuǎn)換例1:ArrayListList=newArrayList();List.Add(1);List.Add(2);List.Add(3);Int32[]values=(Int32[])List.ToArray(typeof(Int32));例2:ArrayListList=newArrayList();List.Add(1);List.Add(2);List.Add(3);Int32[]values=newI