一、MyList列表类
1.插入数据Insert:
代码:public void Insert (int index,T item)
含义:把item插入到索引为index的位置
传递的两个参数:第一个是数据插入到的索引位置,第二个是要插入的数据
{
//第一步:安全判断,因为是插入到index,所以index这个位置必须是有数据的(判断是否是在数据范围内,如果不在数据范围内就要抛出异常)
if(index<0 || index>count-1)
//如果小于最小索引或者大于最大索引即表示index不在索引范围内
{
//抛出异常
throw new ArgumentOutOfRanageException (“索引参数超出范围了”)
}
//第二步:插入首先我们需要把index的位置以及index的后面的数据向后移动一个,然后再把item放到index的位置
//数据迁移:从后往前遍历(向后移动)
for(int i=count-1;i>index-1;i--)
{
//从count-1 递减到 index
data[i +1]=data[i];
//(把i位置的数据放到i+1的 位置,即向后迁移一个位置)
}
data[index]=item;
count++;(数据个数增加)
}
图片:
2.测试插入数据:
测试代码:
list.Insert(2,100);
for(int i=0; i<list.Count; i++)
{
Console.Write(list.[i] + “”);
}
测试图片:
3.移除数据RemoveAt:
代码:public void RemoveAt (int index)
含义:把index位置上的数据移除
{
//第一步:安全判断,因为是移除index位置上的元素,所以index这个位置必须是有数据的
if(index<0 || index>count-1)
//如果小于最小索引或者大于最大索引即表示index不在索引范围内
{
//抛出异常
throw new ArgumentOutOfRanageException (“索引参数超出范围了”)
}
//第二步:插入首先我们需要把index后面的数据向前移动一个
//数据迁移:从前往后遍历(向前移动)
for(int i=index+1;i<count;i++)
{
//从index+1 递增到 count-1
data[i-1]=data[i];
//(把i+1位置的数据放到i的 位置,即向前迁移一个位置)
}
count--;(数据个数增加)
}
}
图片:
4.测试移除数据:
测试代码:
list.RemoveAt(3);
for(int i=0; i<list.Count; i++)
{
Console.Write(list.[i] + “”);
}
测试图片:
换行:Console.WriteLine();
5.获取元素所在列表中的第一次出现的位置indexOf()
代码:public int indexOf(T item)
含义:判断item的索引位置
{
//遍历数组中的所有数据,判断item的位置
int index =-1;
for(int i=0; i<count; i++)
{
//判断item与data[i]是否相等
if(item.equals(data[i]))
{
index=i;
break;
}
}
return index;
}
图片:
6.测试查找第一次出现元素的位置:
测试代码:
Console.WritrLine(list.indexOf(100));
测试图片:
7.获取元素所在列表中的最后一次出现的位置indexOf()
代码:public int LastindexOf(T item)
含义:判断item的索引位置
{
//遍历数组中的所有数据,判断最后一个item的位置
int index =-1;
for(int i=count-1; i>=0; i--)
{
//判断item与data[i]是否相等
if(item.equals(data[i]))
{
index=i;
break;
}
}
return index;
}
图片:
8.测试查找最后一次出现元素的位置LastindexOf():
测试代码:
Console.WritrLine(list.LastindexOf(4));
测试图片:
9.排序Sort()
public void Sort()
{
//默认把当前数组进行从小到大排序
Array.Sort(data,0,count);
//把data里的前count个元素进行排序
}
图片:
10.测试数据排序:
测试代码:
list.Sort();
测试图片: