ArrayList集合與索引器及Hashtable

2022-02-22 15:02:34 字數 3237 閱讀 4450

class

program

;//把第三個位置的數字刪掉

for (int i = 3; i < num.length - 1; i++)

//在位置為3的地方插入乙個數字,陣列的長度是不可變的,所以實現起來很麻煩

//由此引入集合

#endregion

arraylist a1 = new arraylist();//

集合體具有很強的通用性(方法名應該記住)

//增加

a1.add(0

); a1.add(num);

//除錯.此時a1.count=2;

a1.addrange(num);//

除錯,此時a1.count=12相當於

//for (int i = 0; i < num.length;i++ )

//count 為24

a1.removeat(3);//

count為23,去掉了位置為3的數,將後面的書往前挪一位

a1.remove(3);//

移除第一次出現的那個3

a1.clear();//

清除

//排序

int nums = new

int ;

a1.addrange(nums);

a1.sort();

a1.reverse();

//淺複製

arraylist a2 =(arraylist)a1.clone();

a1.sort();

//此時a1重新排序從小到大,a2還是從大到小

//索引集合也可以通過下標訪問

for (int i = 0; i < a1.count/2;i++)

手動寫乙個集合類:

class

program

;//新增功能

mc.add(100

); mc.addrange(nums);

//插入功能

mc.insert(3, 200

);

//移除功能

mc.remove(100

);

//清空

mc.clear();

//讀取位置為3的位置mc[3],所以要新增索引器

mc.addrange(nums);

console.writeline(mc[

3]);

console.readkey();}}

class

mycollection

public

int add(object

obj)

;//}

//else

//

//temp[temp.length - 1] = num;

//}//return nums.length + 1;

#endregion

return

a.add(obj);

}public

void

addrange(icollection ic)

public

void remove(object

obj)

public

void removeat(int

index)

public

void

clear()

public

void insert(int index, object

obj)

public

object

this[int

index]

set

}}

通過上述例子,我們得知:

■索引器是為了方便將類,結構或介面當做陣列來使用

■索引器用來封裝內部集合或陣列

■定於語法

[訪問修飾符]返回型別 this[索引型別 索引名]

//set或get方法體

■索引的本質就是屬性

■利用索引可以用key得到項,亦可用項得到序號

class

program

console.readkey();

#endregion

mycollection mc = new

mycollection();

mc.add(

new person("

翟群", 18, '女'

)); mc.add(

new person("

何雄軍", 24, '男'

));

for (int i = 0; i < mc.count;i++)

console.readkey();

}}

索引器在其他構造型別中

class

program

}class

test

else

if (this.num ==num)

else

if (this.str ==str)

else

return

temp;

}}

hashtable:雜湊集合

class

program

else

//如何遍歷? for迴圈不可以,只能用foreach

foreach (dictionaryentry item in th)//

設個斷點,看看item是什麼型別 再將var改成對應的型別 不建議常用型別推斷var

foreach(string temp in

th.keys)

//想加入乙個名字叫做"何雄軍"的人,可以嗎

"何雄軍", 20);

//報錯,因為index若是重複 ,怎麼查詢

}

int values = ;

hashtable h = new

hashtable();

int count = 0

;

foreach(int i in

values)

}console.writeline(count);

console.readkey();

Java集合 ArrayList集合

以陣列實現。節約空間,但是陣列有容量限制。超出限制時會增加50 容量,用system.arraycopy 複製到新的陣列,因此最好能給出陣列大小的預估值。預設第一次插入元素時建立大小為10 的陣列。按照陣列下標來訪問元素 get i set i,e 的效能很高,這是陣列的基本優勢。直接在陣列末尾加入...

ArrayList與Vector集合的差異

arraylist與vector都為list的兩個兩個典型實現,基於陣列的list類,兩者封裝了乙個動態的允許再分配的object陣列,使用initialcapacity引數設定該陣列長度,當集合中新增的元素超出該陣列的長度時,陣列的initialcapacity會自動增加 兩者在功能上基本一致,其...

ArrayList 集合詳解

1.底層資料結構是陣列 2.預設陣列大小是10 3.保證了資料的有序性,按照插入順尋來儲存 4.查詢效率高,基於陣列索引來定位資料 5.集合擴容每次擴容為原大小的1.5倍.6.集合資料可以重 trimtosize 作用是去掉預留元素的位置,記憶體緊張的時候用 ensurecapacity int n...