ArrayList
1.引用命名空间:using System.Collections;
2.语法:ArrayList arr= new ArrayList();
3.添加元素:arr.Add(object value) //返回值是int类型,当前添加元素的索引
4.访问单个元素:(类型)arr[下标] //按指定索引(下标)取得对象
5.遍历:
//通过索引遍历
for (int i = 0; i < arr.Count; i++)
{
SE seFor = (SE)arr[i];
}
//通过对象遍历
foreach (Object obj in arr)
{
SE seForeach = (SE)obj;
}
6.删除:
//删除指定对象名的对象
arr.Remove(对象名)
//删除指定索引的对象
arr.RemoveAt(index)
//清除集合内的所有元素
arr.Clear()
集合初始化器
在声明集合时,就进行赋值:
ArrayList arr= new ArrayList()
{
new SE(){Name = "王小毛",Age = 26,
Gender = Gender.male,ID = "000",Popularity = 10},
new SE(){Name = "周新雨",Age = 22,
Gender = Gender.female,ID = "111",Popularity = 20},
new SE(){Name = "张烨",Age = 30,
Gender = Gender.male,ID = "222",Popularity = 20}
};
List<类型> :泛型集合
- 引用命名空间:using System.Collections.Generic;
- List<> : <> 标签 T: Type 类型
- 语法:List<> 对象名 = new List
(); - 添加元素
a> 对象名.Add(值); //一个一个进行添加
b> 对象名.AddRange( 集合 );//一次性添加多个 - 集合元素个数
对象名.Count;//集合个数 - 访问元素的方式
通过下标进行访问,与数组访问一样
对象名[下标]; - 判断元素中是否包含指定值
bool isHave = 对象名.Contains(值);
if( isHave)
{ 包含 }
- 遍历元素
for (int i = 0; i < arr.Count; i++)
{
arr[i];
}
foreach(<List中的数据类型> item in 集合对象名)
{
......
}
相对ArrayList无需类型转换
- 删除元素
//1. 清空所有
对象名.Clear();
//2. 删除指定值的元素
对象名.Remove(值);
//3. 根据下标删除元素
对象名.RemoveAt(下标);
//4. 根据指定下标开始,删除指定数量的元素
对象名.RemoveRange(开始下标,删除个数);
集合对比:
集合 | 数组 | ArrayList | List |
---|---|---|---|
长度 | 固定 | 可变 | 可变 |
添加 | 不能添加 | Add()/AddRange() | Add()/AddRange() |
修改 | 数组[下标] | 下标 | 下标 |
删除 | 不能 | Remove()/RemoveAt() | Remove()/RemoveAt() |
插入 | 不能 | Insert()/InsertAt() | Insert()/InsertAt() |
注:
- List: 在添加数据时有数据判断,只能添加指定类型的数据,长度可变
- ArrayList: 什么都可以添加,需要进行装箱折箱操作,影响性能,长度可变
数组: 长度固定