ArrayList

回顾

C#核心中,索引器的练习题

自定义一个整形数组类,该类中有一个整形数组变量,为它封装增删查改的方法。

ArrayList的本质

ArrayList是一个C#为我们封装好的类,它的本质是一个object类型的数组,ArrayList类帮助我们实现了很多方法,比如数组的增删查改。

申明

//需要引用命名空间using System.Collections;
ArrayList array = new ArrayList();

增删改查

array.Add(1);
array.Add("123");
array.Add(true);
array.Add(new object());
array.Add(new Test());
array.Add(1);
array.Add(true);

ArrayList array2 = new ArrayList();
array2.Add(123);
//范围增加(批量增加 把另一个list容器里面的内容加到后面)
array.AddRange(array2);

array.Insert(1, "12345676");
Console.WriteLine(array[1]);

//移除指定元素 从头找 找到删
array.Remove(1);
//移除指定位置的元素
array.RemoveAt(2);
//清空
//array.Clear();

//得到指定位置的元素
Console.WriteLine(array[0]);

//查看元素是否存在
if( array.Contains("1234") )
{
    Console.WriteLine("存在123");
}

//正向查找元素位置
//找到的返回值 是位置 找不到 返回值 是-1
int index = array.IndexOf(true);
Console.WriteLine(index);

Console.WriteLine(array.IndexOf(false));

//反向查找元素位置
//返回时从头开始的索引数
index = array.LastIndexOf(true);
Console.WriteLine(index);

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

遍历

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

装箱拆箱

ArrayList本质上是一个可以自动扩容的object数组,由于用万物之父来存储数据,自然存在装箱拆箱。

当往其中进行值类型存储时就是在装箱,当将值类型对象取出来转换使用时,就存在拆箱。

所以ArrayList尽量少用,之后我们会学习更好的数据容器。

int k = 1;
array[0] = k;//装箱
k = (int)array[0];//拆箱

相关推荐

  1. <span style='color:red;'>ArrayList</span>

    ArrayList

    2024-07-19 07:50:02      26 阅读
  2. ArrayList

    2024-07-19 07:50:02       22 阅读
  3. ArrayList详解

    2024-07-19 07:50:02       22 阅读
  4. [AIGC] ArrayList介绍

    2024-07-19 07:50:02       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 07:50:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 07:50:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 07:50:02       58 阅读
  4. Python语言-面向对象

    2024-07-19 07:50:02       69 阅读

热门阅读

  1. vue项目使用iview☞Modal后页面不能滚动的诡异问题

    2024-07-19 07:50:02       21 阅读
  2. STM32 | 看门狗+RTC源码解析

    2024-07-19 07:50:02       21 阅读
  3. 富文本中提取信息并去除其中的HTML或XML标签

    2024-07-19 07:50:02       22 阅读
  4. 2024前端面试真题【手写篇】

    2024-07-19 07:50:02       18 阅读
  5. 聊聊最近在看的一本书-《从极简到极致》

    2024-07-19 07:50:02       20 阅读
  6. Python数据获取(网页视频、音频版)

    2024-07-19 07:50:02       22 阅读
  7. Log4j2原理及应用详解(九)

    2024-07-19 07:50:02       23 阅读
  8. 关于Kafka的17个问题

    2024-07-19 07:50:02       19 阅读