集合:很多数据的一个集合
数组:长度不可变,类型单一
集合的好处:长度可以任意改变,类型随便
using System;
using System.Collections;
namespace _062_ArrayList集合
{
class Program
{
static void Main(string[] args)
{
//创建了一个集合对象
ArrayList list = new ArrayList();
//集合:很多数据的一个集合
//数组:长度不可变,类型单一
//集合的好处:长度可以任意改变,类型随便
list.Add(1);
list.Add(2.2);
list.Add(true);
list.Add("微咲");
list.Add(new int[] { 1, 2, 3, 4, 5, 6, 7 });
Person person = new Person();
list.Add(person);
list.Add(list);
for (int i = 0; i < list.Count; i++)
{
if (list[i] is Person)
{
((Person)list[i]).SayHello();
}
else if (list[i] is int[])
{
for (int j = 0; j < ((int [])list[i]).Length; j++)
{
Console.WriteLine(((int [])list[i])[j]);
}
}
else if (list[i] is ArrayList)
{
for (int k = 0; k < ((ArrayList)list[i]).Count; k++)
{
Console.WriteLine(((ArrayList)list[i])[k]);
}
}
else
{
Console.WriteLine(list[i]);
}
}
Console.ReadKey();
}
}
}
集合的方法
list.Add(111);//添加单个元素
list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8 });//添加集合元素
list.Clear();//删除所有元素,没有返回值
list.Remove(true);//删除单个指定元素
list.RemoveAt(0);//根据下标(索引)删除
list.RemoveRange(1, 2);//根据下标移除一定范围内的元素
list.Reverse();//反转
list.Sort();//升序排序,数据差不多是可以执行
list.Insert(5, “插入”);//将元素插入到指定的下标位置(在指定索引位置插入元素)
list.InsertRange(0, new string[] { “我”, “爱”, “你” });//在指定索引位置插入一个集合
bool b = list.Contains(true);//判断是否包含某个指定得到元素
using System;
using System.Collections;
namespace _064_ArrayList集合方法
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
//添加单个元素
list.Add(111);
list.Add(222);
list.Add(333);
list.Add(444);
list.Add(555);
list.Add(666);
list.Add(2.2);
list.Add(true);
list.Add(true);
//添加集合元素
list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8 });
//list.AddRange(list);
//list.Clear();//删除所有元素,没有返回值
//list.Remove(true);//删除单个指定元素
//list.RemoveAt(0);//根据下标(索引)删除
//list.RemoveRange(1, 2);//根据下标移除一定范围内的元素
//list.Reverse();//反转
//list.Sort();//升序排序,数据差不多是可以执行
list.Insert(5, "插入");//将元素插入到指定的下标位置(在指定索引位置插入元素)
list.InsertRange(0, new string[] { "我", "爱", "你" });//在指定索引位置插入一个集合
bool b = list.Contains(true);//判断是否包含某个指定得到元素
Console.WriteLine(b);
if (!list.Contains("微咲"))
{
list.Add("微咲");
}
else
{
Console.WriteLine("已经存在");
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
Console.ReadKey();
}
}
}
ArrayList集合的长度问题
每次集合中实际包含的元素个数(count)超过了可以包含元素的个数(capcity)的时候,集合就会向内存中申请多开一倍的空间,来保证集合的长度一直够用。
集合的练习:
using System;
using System.Collections;
namespace _065_集合的练习
{
class Program
{
static void Main(string[] args)
{
//1、创建一个集合,里面添加数字,求平均值、和、最大值、最小值
ArrayList list = new ArrayList();
list.AddRange(new int[] { 2, 5, 3, 7, 9, 6, 8, 0, 1, 4 });
int sum = 0;
int max = (int)list[0];
int min = (int)list[0];
for (int i = 0; i < list.Count; i++)
{
if ((int)list[i] > max)
{
max = (int)list[i];
}
if ((int)list[i] < min)
{
min = (int)list[i];
}
sum += (int)list[i];
}
Console.WriteLine("Sum:{0},Average:{1},Max:{2},Min:{3}", sum, sum / 10, max, min);
//2、写一个长度为10的集合,要求在里面随机存放10个数字(0-9)不重复
ArrayList list1 = new ArrayList();
Random r = new Random();
for (int i = 0; i < 10; i++)
{
int rNumber = r.Next(0, 10);
if (!list1.Contains(rNumber))
{
list1.Add(rNumber);
}
else
{
i--;
}
}
for (int i = 0; i < list1.Count; i++)
{
Console.WriteLine(list1[i]);
}
Console.ReadKey();
}
}
}