C#动态数组ArrayList介绍
ArrayList是一种动态数组,其容量可随着我们的需要自动进行扩充.
ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间.
下面,我们还是在Student类的基础上利用ArrayList操作,从而了解ArrayList的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public class Student { public Student(){} public Student(String name, int age,String hobby) { this .Name = name; this .Age = age; this .Hobby = hobby; } private String name; public String Name { get { return name;} set {name = value;} } private int age; public int Age { get { return age;} set {age = value;} } private String hobby; public String Hobby { get { return hobby;} set {hobby = value;} } public void say() { Console.WriteLine( "大家好,我是'{0}',今年{1}岁,我喜欢'{2}'" , this .Name, this .Age, this .Hobby); } } |
编写测试类,了解ArrayList的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | using System.Collections; public class TestStudent { public static void main(String args []) { //建立ArrayList对象 ArrayList students = new ArrayList(); //实例化几个Student类对象 Student rose = new Student( "rose" ,25, "reading" ); Student jack = new Student( "jack" ,28, "singing" ); Student mimi = new Student( "mimi" ,26, "dancing" ); //利用ArrayList类的add()方法添加元素 students.add(rose); students.add(jack); students.add(mimi); //利用ArrayList的Count属性查看该集合中的元素数量 int number = students.Count; Console.WriteLine( "共有元素" + number + "个" ); //读取单个元素,因为存入ArrayList中的元素会变为Object类型, //所以,在读取时间, Student stu = students[0] as Student; stu.say(); //遍历元素 -- 通过索引 for ( int i = 0;i < students.Count;i ++) { Student a = students[i] as Student; a.say(); } //利用foreach循环 foreach (Object o in students) { Student b = o as Student; b.say(); } //删除元素 通过索引删除 students.removeAt(0); //删除元素, 通过对象名 students.remove(jack); //清空元素 students.Clear(); //我们知道,ArrayList的容量会随着我们的需要自动按照一定规律 //进行填充,当我们确定不再添加元素时,我们要释放多余的空间 //这就用到了Capacity属性和TrimtoSize()方法 //利用Capacity属性可以查看当前集合的容量 //利用TrimtoSize()方法可以释放多余的空间 //查看当前容量 int number = students.Capacity; //去除多余的容量 students.TrimtoSize(); } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)