目录
上一篇博客中已经介绍了什么是arraylist,不清楚的小伙伴们,可以看一下哦
简述
下面主要介绍一下arraylist一些常用的方法
添加数据
在使用arraylist集合前,必须先要对集合进行实例化,添加数据有三种方式。
第一种:可以通过集合的构造函数添加一个数组(不局限于数组,只要是接口可以实现的都可以)
第二种:通过Add()方法可以添加任何一个数据,添加数组或者类的时候只能算作一个元素
第三种:通过AddRange()也可以添加数组,而且添加到集合当中是数组元素的个数,数组中有多少元素,就添加到集合当中多少个
总结:构造函数或者addrange()方法都可以直接显示出数组的各个元素,add方法添加数组只能算作一个元素,显示System.Int[32]
int[] nums = new int[] { 1, 4, 5, 7 }; //创建一个数组
ArrayList al = new ArrayList(nums); //---用构造函数添加这个数组,集合中显示数组的所有元素
al.Add(1); //用add方法向数组中添加元素,int类型
al.Add("老牛"); //用add方法向数组中添加元素,string类型
al.Add(nums); //通过add()方法添加一个数组,集合中只能算作一个元素,想要显示出数组当中所有的元素,要通过强制转换,然后for循环遍历出来
al.AddRange(nums); //通过AddRange()方法添加一个数组,集合中显示的是数组当中的元素,数组当中有几个元素,就显示几个元素
插入数据
一个集合中存放了1,3,5,7,9,现在想把2,4,6,8,10加进去
ArrayList al = new ArrayList(); //实例化一个集合
for (int i = 1; i < 10; i += 2)
{
al.Add(i); //for循环,向集合中添加1,3,5,7
}
//用insert方法将2,4,6,8,10加进去
//方法一:一个个添加
al.Insert(1,2); //表示从哪个索引值处开始添加,添加的内容是什么
al.Insert(3, 4);
al.Insert(5, 6);
al.Insert(7, 8);
al.Insert(9, 10);
//方法二:for循环添加
for (int i = 1; i <10; i+=2)
{
al.Insert(i,i+1);
}
//insertRange:往某一个索引位置插入一个数组
int[] num3 = new int[] { 1, 2, 4, 5 };
al.Insert(5, num3); //显示在集合中视作一个元素
删除数据
ArrayList al = new ArrayList(); //实例化一个集合
//向集合添加3个数据
al.Add(10);
al.Add("haha");
al.Add(999);
al.Clear(); //将集合中的内容删除
//remove:从集合中将某个元素移除
al.Remove(999); //移除集合中第一个999
al.RemoveAt(0); //移除索引对应的值
al.RemoveRange(1,1); //从指定索引处开始移除,移除多少个,如果超出索引报异常
其他常用方法
ArrayList al = new ArrayList(); //实例化一个集合
//向集合中添加数据
al.Add(10);
al.Add("haha");
int[] nums = new int[] { 999, 999, 999 }; //创建一个数组
al.AddRange(nums); //将该数组添加到集合当中去
//contains:判断这个集合中是否包含这个元素,返回的类型为bool类型
bool result=al.Contains("haha");
if (result)
{
Console.WriteLine("此集合包含这个元素");
}
else
{
Console.WriteLine("此集合不包含这个元素");
}
//count:统计集合中的元素的个数,返回值为int类型
int num = al.Count;
Console.WriteLine("此集合中元素个数为{0}个",num);
//indexof:找某一个元素对应的索引,返回类型为int类型的索引值
int num1=al.IndexOf("haha");
Console.WriteLine("对应的索引值为{0}",num1);
排序和遍历
//sort:集合的排序 reverse:集合的反转
ArrayList al = new ArrayList();
for (int i = 1; i <= 100; i++)
{
al.Add(i); //向集合中添加1-100
}
al.Reverse(); //反转 输出100-0
//al.Sort(); //排序 输出 0-100
//集合的遍历
//循环输出集合中的元素
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine(al[i]);
}
Console.ReadKey();
集合实例
ArrayList arraylist = new ArrayList(); //实例化一个集合
int[] nums = new int[4] { 2, 3, 5, 6 }; //定义一个int类型数组
Person p = new Person(); //实例化person类
//给集合添加数据,用add()这个方法,添加的顺序就是集合下标或索引的顺序
//添加的内容,无限添加
arraylist.Add(10); //可以添加int类型数据
arraylist.Add(20);
arraylist.Add("小苏"); //可以添加字符串类型数据
arraylist.Add('女'); //可以添加字符类型的数据
arraylist.Add(true); //可以添加bool类型的数据
arraylist.Add(3.15m); //可以添加decimal类型数据
arraylist.Add(78.9); //可以添加double类型数据
arraylist.Add(nums); //向集合中添加数组时候,显示集合内容的时候不能直接显示数组中各个元素的值,需要加一个强制转换的判断
arraylist.Add(p); //向集合中添加类的时候,显示集合内容不能直接显示类的内容,需要加一下强制转换的判断
//下面代码是给集合元素重新赋值,并没有向集合中添加任何新的元素
arraylist[0] = 100;
arraylist[1] = 200;
arraylist[2] = "小苏";
arraylist[3] = '女';
arraylist[4] = true;
arraylist[5] = 3.15m;
arraylist[6] = 78.9;
arraylist[7] = nums;
//arraylist集合的显示
for (int i = 0; i <arraylist.Count; i++)
{
if (arraylist[i] is int[]) //判断集合元素是否是int类型的数组
{
int[] numbers = (int[])arraylist[i]; //将集合元素强制转换为int类型的数组
for (int j = 0; j < numbers.Length; j++)
{
Console.WriteLine(numbers[j]); //显示数组中各个元素
}
}
else if (arraylist[i] is Person)
{
((Person)arraylist[i]).Say(); //强制转换成person类并显示类当中的方法
}
else
{
Console.WriteLine(arraylist[i]); //显示集合当中的内容
}
}
Console.ReadKey();
}
对上面代码的简单总结:
1.arraylist.Add(20);向集合中添加数据,可以是任意类型的数据,也可以是数组和类,但是添加数组和类的时候,显示集合内容不能直接显示类的内容或者数组的内容,需要加一下强制转换的判断
int[] numbers = (int[])arraylist[i]; //将集合元素强制转换为int类型的数组
((Person)arraylist[i]).Say(); //强制转换成person类并显示类当中的方法
2. ArrayList arraylist = new ArrayList(); //实例化一个集合
3. arraylist[0] = 100;利用下标(索引)给集合元素重新赋值,并没有向集合中添加任何新的元素,只是重新赋值
4.集合元素索引(下标)的顺序就是添加数据的顺序,从0开始,依次向后排
5..count集合元素的总个数