C#.Net 中ArrayList 与 Array的区别

 
ArrayList 是数组的复杂版本。ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能。例如:

Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。如果更改了 ArrayList.Capacity 属性的值,则自动进行内存重新分配和元素复制。
ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。
使用 Synchronized 方法可以很容易地创建 ArrayList 的同步版本。而 Array 将一直保持它直到用户实现同步为止。
ArrayList 提供将只读和固定大小包装返回到集合的方法。而 Array 不提供。
另一方面,Array 提供 ArrayList 所不具有的某些灵活性。例如:

可以设置 Array 的下限,但 ArrayList 的下限始终为零。
Array 可以具有多个维度,而 ArrayList 始终只是一维的。
特定类型(不包括 Object)的 Array 的性能比 ArrayList 好,这是因为 ArrayList 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱。
要求一个数组的大多数情况也可以代之以使用 ArrayList。它更易于使用,并且通常具有与 Object 类型的数组类似的性能。

Array 位于 System 命名空间中;ArrayList 位于 System.Collections 命名空间中。
 
 
 //ArrayList动态数组 定义 赋值 输出  ArrayList可以不用指定维数 可动态赋值  赋不同类型值
            ArrayList arrayList1 = new ArrayList();
            arrayList1.
            arrayList1.Add("a");
            arrayList1.Add(1);
            arrayList1.Add("b");
            Response.Write(arrayList1[1]);
 
 
            //Array数组类 所有数组的基类 定义 赋值 输出  Array的容量是固定的 先指定大小 在赋值
            Array arrayList2 = Array.CreateInstance(typeof(string), 6);
            arrayList2.SetValue("a", 0);
            arrayList2.SetValue("b", 1);
            Response.Write(arrayList2.GetValue(1));

            //数组 定义 赋值 输出  先指定大小 在赋值
            string[] arrayList;
            arrayList=new string[]{"A","B","C","D"};
            arrayList[0] = "abcde";
            arrayList[2] = "1234";
            arrayList.SetValue("dd", 3);
            Response.Write(arrayList[0]);
 
            //哈希表
            Hashtable abc = new Hashtable();
            abc.Add("1", "34");
            if (abc.Contains("1"))
            {
                Response.Write(abc["1"]);
            }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VB.NET,`ArrayList`和`List(Of T)`都是用于存储和操作集合数据的类。它们有一些相似之处,但也有一些区别。 1. 类型安全性: - `ArrayList`是一种非泛型类,可以存储不同类型的对象。在访问或使用`ArrayList`的元素时,你需要进行类型转换。 - `List(Of T)`是一个泛型类,可以在声明时指定元素的类型。这提供了更好的类型安全性,你不需要进行显式的类型转换。 2. 性能: - 由于`ArrayList`可以存储不同类型的对象,所以它在内部使用装箱和拆箱操作来处理值类型。这些操作可能会影响性能。 - `List(Of T)`是一个泛型类,它可以直接存储值类型,避免了装箱和拆箱的开销,因此在性能方面通常更优。 3. 使用方式: - `ArrayList`提供了一组用于添加、删除、查找和遍历元素的方法和属性。 - `List(Of T)`也提供了类似的方法和属性,但由于它是泛型的,因此还提供了更多与泛型集合相关的功能,如排序、搜索和筛选等。 下面是一个简单的示例代码,展示了如何使用`ArrayList`和`List(Of T)`: ```vb Imports System Imports System.Collections Module Program Sub Main() ' 使用 ArrayList Dim arrayList As New ArrayList() arrayList.Add("Apple") arrayList.Add(123) Dim item1 As Object = arrayList(0) ' 需要进行类型转换 ' 使用 List(Of T) Dim list As New List(Of String)() list.Add("Banana") list.Add("Orange") Dim item2 As String = list(0) ' 不需要进行类型转换 Console.WriteLine(item1) Console.WriteLine(item2) End Sub End Module ``` 在上述示例,我们分别创建了一个`ArrayList`和一个`List(Of String)`,并向它们添加了不同类型的元素。通过比较访问元素的方式,可以看到在`ArrayList`需要进行类型转换,而在`List(Of T)`不需要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值