classprogram
;//把第三個位置的數字刪掉
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++)
手動寫乙個集合類:
classprogram
;//新增功能
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得到項,亦可用項得到序號
classprogram
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();
}}
索引器在其他構造型別中
classprogram
}class
test
else
if (this.num ==num)
else
if (this.str ==str)
else
return
temp;
}}
hashtable:雜湊集合
classprogram
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...