ArrayList用法 (經典)

2021-04-13 23:47:20 字數 4728 閱讀 5800

system.collections.arraylist類是乙個特殊的陣列。通過新增和刪除元素,就可以動態改變陣列的長度。

一.優點

1。支援自動改變大小的功能

2。可以靈活的插入元素

3。可以靈活的刪除元素

二.侷限性

跟一般的陣列比起來,速度上差些

三.新增元素

1.publicvirtualintadd(objectvalue);

將物件新增到arraylist的結尾處

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

內容為abcde

2.publicvirtualvoidinsert(intindex,objectvalue);

將元素插入arraylist的指定索引處

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.insert(0,"aa");

結果為aaabcde

3.publicvirtualvoidinsertrange(intindex,icollectionc);

將集合中的某個元素插入arraylist的指定索引處

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

arraylistlist2=newarraylist();

list2.add("tt");

list2.add("ttt");

alist.insertrange(2,list2);

結果為abtttttcde

四.刪除

a)publicvirtualvoidremove(objectobj);

從arraylist中移除特定物件的第乙個匹配項,注意是第乙個

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.remove("a");

結果為bcde

2.publicvirtualvoidremoveat(intindex);

移除arraylist的指定索引處的元素

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.removeat(0);

結果為bcde

3.publicvirtualvoidremoverange(intindex,intcount);

從arraylist中移除一定範圍的元素。index表示索引,count表示從索引處開始的數目

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.removerange(1,3);

結果為ae

4.publicvirtualvoidclear();

從arraylist中移除所有元素。

五.排序

a)publicvirtualvoidsort();

對arraylist或它的一部分中的元素進行排序。

arraylistalist=newarraylist();

alist.add("e");

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

dropdownlist1.datasource=alist;//dropdownlistdropdownlist1;

dropdownlist1.databind();

結果為eabcd

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.sort();//排序

dropdownlist1.datasource=alist;//dropdownlistdropdownlist1;

dropdownlist1.databind();

結果為abcde

b)publicvirtualvoidreverse();

將arraylist或它的一部分中元素的順序反轉。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.reverse();//反轉

dropdownlist1.datasource=alist;//dropdownlistdropdownlist1;

dropdownlist1.databind();

結果為edcba

六.查詢

a)publicvirtualintindexof(object);

b)publicvirtualintindexof(object,int);

c)publicvirtualintindexof(object,int,int);

返回arraylist或它的一部分中某個值的第乙個匹配項的從零開始的索引。沒找到返回-1。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

intnindex=alist.indexof(「a」);//1

nindex=alist.indexof(「p」);//沒找到,-1

d)publicvirtualintlastindexof(object);

e)publicvirtualintlastindexof(object,int);

f)publicvirtualintlastindexof(object,int,int);

返回arraylist或它的一部分中某個值的最後乙個匹配項的從零開始的索引。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("a");//同0

alist.add("d");

alist.add("e");

intnindex=alist.lastindexof("a");//值為2而不是0

g)publicvirtualboolcontains(objectitem);

確定某個元素是否在arraylist中。包含返回true,否則返回false

七.其他

1.publicvirtualintcapacity

獲取或設定arraylist可包含的元素數。

2.publicvirtualintcount

獲取arraylist中實際包含的元素數。

capacity是arraylist可以儲存的元素數。count是arraylist中實際包含的元素數。capacity總是大於或等於count。如果在新增元素時,count超過capacity,則該列表的容量會通過自動重新分配內部陣列加倍。

如果capacity的值顯式設定,則內部陣列也需要重新分配以容納指定的容量。如果capacity被顯式設定為0,則公共語言執行庫將其設定為預設容量。預設容量為16。

在呼叫clear後,count為0,而此時capacity切是預設容量16,而不是0

3.publicvirtualvoidtrimtosize();

將容量設定為arraylist中元素的實際數量。

如果不向列表中新增新元素,則此方法可用於最小化列表的記憶體系統開銷。

若要完全清除列表中的所有元素,請在呼叫trimtosize之前呼叫clear方法。截去空arraylist會將arraylist的容量設定為預設容量,而不是零。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");//count=5,capacity=16,

alist.trimtosize();//count=capacity=5;

js中this的用法(經典值得借鑑)

this是js的乙個關鍵字,隨著函式使用場合不同,this的值會發生變化。但是總有乙個原則,那就是this指的是呼叫函式的那個物件。1 純粹函式呼叫。function test test 其實這裡的this就是全域性變數。看下面的例子就能很好的理解其實this就是全域性物件global。var x ...

演算法 經典演算法

1 匹配演算法 匹配開始,從長的字串開始,匹配成功,長的和短的字串均向後匹配,而匹配失敗,則長的字串從開始的位置向後乙個字元,重新開始匹配,而短的字串則完全從頭開始。匹配演算法 param str1 長匹配字串 param str2 短的匹配字串 return 匹配成功 返回短字串在長字串開始的位置...

隔板法經典應用

隔板法就是在n個元素間插入 b 1 個板,即把n個元素分成b組的方法。c n 1,b 1 隔板法必須滿足三個條件 這n個元素必須相同,2 所分成的每一組至少分得乙個元素,3 分成的組別彼此差異。例如 某校組建一球隊需16人,該校共10個班級,且每個班至少分配乙個名額,共有幾種情況。c 16 1,10...