数组
- 类型确定,唯一
- 有索引范围
- 下标从0开始
- 由抽象基类型array派生的引用类型
- 通过new运算符创建,可以是多维数组
- 数组在使用之前必须进行初始化
一维数组的声明和使用
// type[] arrayName;
//声明一个int数组
int[] arry;
//声明的时候指定数组的长度为5;这个时候的初始化值为0
int[] arry2=new int[5];
//声明的时候初始化值 -- 初始化的值个数必须和指定的长度匹配
int[] array3=new int[5]{1,2,3,4,5};
// 字符串数组
string [] arrstr={"Sun","Mon","Tue"};
数组遍历
// one
int [] arr={1,2,3,4,5};
foreach(int n in arr)
{
Console.WriteLine("{0}",n);
}
二维数组的声明和使用
//type[,] arrayName;
//声明int数组 2行2列
int[,] arr=new int[2,2];
//初始化
int[,] arr=new int[2,2]{ {1,2}, {3,4} };
//等价
int[,] arr=new int[,]{ {1,2}, {3,4} };
GetLength(int num):获取数组第几个纬度的长度
int [,] arr=new int[3,2]{{1,2},{3,4},{5,6}};
//获取行
int row= arr.GetLength(0);
//获取列
int col=arr.GetLength(1);
//循环输出每个元素
for(int i=0;i<row,i++)
{
for(int j=0;j<col;j++)
{
Console.Write(Convert.ToString(arr[i][j])+" ");
}
ConsoleWriteLine();
}
动态数组的声明和使用
//声明
//type[] arraryName;
arrayName=new type[n1,n2....] ;//一维或者多维
int m=3;
int n=2;
int [,] array=new int[m,n];
数组中的方法
- Sort:对数组排序,改变数组本身的值
- Reverse:对数组继续操作
- 以上适用于一维
int[] arr = new int[] { 6, 5, 77, 44, 12, 21 };
Array.Sort(arr);
foreach(int n in arr)
{
Console.Write(n.ToString()+" ");
}
Console.WriteLine();
Array.Reverse(arr);
foreach (int n in arr)
{
Console.Write(n.ToString()+" ");
}
Console.WriteLine();
ArrayList集合
- 动态的添加和删除元素,插入
- 属于比较高级的动态数组,不等同于数组
- 只是一维形式,没有多维
ArrayList三个构造器
//1.默认构造器,默认初始化大小16
public ArrayList();
//demo
ArrayList lst= new ArrayList();
for(int i=0;i<10;i++)
{
lst.Add(i);
}
//2. 使用一个ICollection 对象来构造
public ArrayList=new ArrayList(ICollection);
//demo
int[] arr= new int[]{1,2,3,4};
ArrayList lst= new ArrayList(arr);
// 3.初始化大小的ArrayList
public ArrayList(int);
//demo
ArrayList lst=new ArrayList(10);
for(int i=0;i<10;i++)
{
lst.Add(i);
}
ArrayList集合类的常用属性
属性 | 说明 |
---|---|
Capacity | 获取或者设置ArrayList的元素个数 |
Count | 获取实际包含的元素数 |
IsFixedSize | 获取一个值,指示ArrayList是否具有固定大小 |
IsReadOnly | 获取一个值,指示ArrayList是否为只读 |
IsSynchronized | 获取一个值,指示是否同步对ArrayList的访问 |
Item | 获取或者设置指定索引出的元素 |
SyncRoot | 获取可用于同步ArrayList的访问对象 |
ArrayList常用方法
方法名称 | 说明 |
---|---|
Add(item) | 返回int下标索引,添加元素到尾部 |
Insert(index,Object value) | 在index索引出插入元素,可为空,无返回值 |
Clear() | 清空元素 |
Remove(Object obj) | 移除第一个匹配项 |
RemoveAt(int index) | 移除指定索引出的元素 |
RemoveRange(index,count) | 从index开始,删除count个元素 |
Contains(Object item) | 返回bool用来确定某个元素是否在其中 |
IndexOf(Object value) | 返回第一个匹配的索引,否则返回-1 |
LastIndexOf(Object value) | 反向查找,并返回查找到的索引,否则返回-1 |
ArrayList方法使用示例
//Add添加元素
ArrayList arr=new ArrayList();
for(int i=0;i<10;i++)
{
arr.Add(i);
}
// Insert插入元素
arr.Insert(6,99);
//Remove删除元素
arr.Remove(6);
//RemoveAt 删除下标是2的元素
arr.RemoveAt(2);
//RemoveRange()删除一定数量
arr.RemoveRange(2,4);//从下标是2的开始,连续删除4个元素
//判断是否有数字2 Contains
Console.WriteLine(arr.Contains(2));
//查找数字99的索引,找不到返回-1 IndexOf();
Console.WriteLine(arr.IndexOf(99));
//从后面查找数字99的索引,找不到返回-1 LastIndexOf();
Console.WriteLine(arr. LastIndexOf(99));
//清空Clear()
arr.Clear();