简单数据结构类——Arraylist

简介: 简单数据结构类——Arraylist

Arraylist是一个C#已经封装好的类,它的本质是一个object类型的数组,Arraylist类可以帮我们实现很多方法,比如数组的增删查改等等。但是跟一般的数组比起来,速度上差些。在ArrayList中,我们可以存储相同类型和不同类型的元素。它属于非泛型集合。

那么我们改如何申明Arraylist呢,我们可以使用以下代码来申明:

Arraylist array = new Arraylist();//ArrayList在System.Collections命名空间下定义;因此,在程序中使用Arraylist时,必须添加System.Collections命名空间

ArrayList类有三个用于创建ArrayList的构造函数:

ArrayList():用于创建ArrayList类的实例;该实例为空,且没有初始容量。

ArrayList(Int32):用于创建ArrayList类的实例;该实例为空且具有指定的初始容量。

ArrayList(ICollection):用于创建一个数组列表,该列表使用指定集合中的元素初始化,并且具有从集合复制的相同初始容量。

那我们如何使用Arraylist进行增删查改呢

增:

Array.Add(1);
Array.Add(“123”);
Array.Add(true);
Array.Add(new object());
Array.Add(1);
ArrayList array2 = new ArrayList();
Array.Add(123);
//范围增加(批量增加,把另一个list容器里面的内容加到后面)
Array.AddRange(array2);

Array.Remove(1);//删除指定的元素,从头开始寻找,找到之后删除
Array.RemoveAt(2);//删除指定位置的元素
Array.Clear();//清空

Console.WriteLine(array[0]);//得到指定位置的元素
If(array.Contaions(“1234”))//查看元素是否存在
{
Console.WriteLine(“存在123”);
}
//正向查找元素位置,如果找到则返回位置的值,如果找不到则返回-1
int index = array.Index0f(true);
Console.WriteLine(index);
 
Console.WriteLine(array.Index0f(false));
//反向查找元素位置,返回时从头开始的索引数
int index = array.Index0f(true);
Console.WriteLine(index);

Console.WriteLine(array[0]);
array[0] = “999”;
Console.WriteLine(array[0]);

遍历

//长度
Console.WriteLine(array.Count);
//容量
避免产生过多的垃圾
Console.WriteLine(array.Capacity);
for(int i =0;i<array.Count;i++)
{
Console.WriteLine(array[i]);
}
//迭代式遍历
Foreach(object item in array)
{
Console.WriteLine(item);
}

装箱拆箱

ArrayList本质上是一个可以自动扩容的object数组,由于用万物之父来存储数据,自然存在装箱拆箱。当往其中进行值类型存储时就是在装箱,当将值类型对象取出来转换使用时,就存在拆箱。所以我们ArrayList尽量少用。

举个例子:

int i=1;
Array[0]=i;//装箱
I=(int)array[0];//拆箱
目录
相关文章
|
13天前
|
存储 Java API
Java数据结构之ArrayList(如果想知道Java中有关ArrayList的知识点,那么只看这一篇就足够了!)
Java数据结构之ArrayList(如果想知道Java中有关ArrayList的知识点,那么只看这一篇就足够了!)
Java数据结构之ArrayList(如果想知道Java中有关ArrayList的知识点,那么只看这一篇就足够了!)
|
15天前
|
存储 Java 索引
实现一个类似ArrayList的数据结构
实现一个类似ArrayList的数据结构
11 4
|
17天前
|
存储 Java 索引
【Java】LinkedList vs. ArrayList:Java中的数据结构选择
【Java】LinkedList vs. ArrayList:Java中的数据结构选择
14 3
|
2月前
|
存储 算法
【数据结构与算法 | 基础篇】模拟ArrayList实现的“动态数组“
【数据结构与算法 | 基础篇】模拟ArrayList实现的“动态数组“
|
2月前
|
存储 算法 Java
【数据结构与算法】1、学习动态数组数据结构(基本模拟实现 Java 的 ArrayList 实现增删改查)
【数据结构与算法】1、学习动态数组数据结构(基本模拟实现 Java 的 ArrayList 实现增删改查)
57 0
|
2月前
|
存储 算法 Java
ArrayList vs. LinkedList:数据结构之争
ArrayList vs. LinkedList:数据结构之争
29 0
|
2月前
数据结构 模拟实现ArrayList顺序表
数据结构 模拟实现ArrayList顺序表
36 0
|
12月前
|
存储 Java 开发者
Java-数据结构(三)-List:ArrayList和LinkedList及其相关面试题
Java-数据结构(三)-List:ArrayList和LinkedList及其相关面试题
159 0
|
2月前
|
Java
java数据结构,如何使用ArrayList和LinkedList?
java数据结构,如何使用ArrayList和LinkedList?
29 1
|
2月前
|
Java 索引
数据结构之ArrayList与顺序表(有源码剖析)(二)
数据结构之ArrayList与顺序表(有源码剖析)
49 0