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...