C#集合与泛型集合
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#集合与泛型集合,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3087字,纯文字阅读大概需要5分钟。
内容图文
![C#集合与泛型集合](/upload/InfoBanner/zyjiaocheng/1308/4794cda222b44c5fb19e7261d30745b9.jpg)
看到这个标题,大家应该就知道有泛型集合,就有非泛型集合
既然都是集合,咱们今儿就简单的来对比讲解下
需要记住的不算太多,理解记忆、理解记忆
2017-11-0411:39:09
C# 泛型集合之非泛型集合类与泛型集合类的对应:
*****ArrayList对应List
***HashTable对应Dictionary
*****Queue对应Queue
*****Stack对应Stack
SortedList对应SortedList
第一 : ArrayList(非泛型集合) 与List(泛型集合)
ArrayList 是数组的复杂版本。ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能:
1.Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。
2.ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。
3.使用 Synchronized 方法可以很容易地创建 ArrayList 的同步版本。而 Array 将一直保持它直到用户实现同步为止。
4.ArrayList 提供将只读和固定大小包装返回到集合的方法。而 Array 不提供。
5.Array 提供 ArrayList 所不具有的某些灵活性:
a.可以设置 Array 的下限,但 ArrayList 的下限始终为零。
b.Array 可以具有多个维度,而 ArrayList 始终只是一维的。
c.特定类型(不包括 Object)的 Array 的性能比 ArrayList 好,这是因为 ArrayList 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱。
d.要求一个数组的大多数情况也可以代之以使用 ArrayList。它更易于使用,并且通常具有与 Object 类型的数组类似的性能。
6.Array 位于 System 命名空间中;ArrayList 位于 System.Collections 命名空间中。
ArrayList类对象方法:
1:Add()向数组中添加一个元素,
2:Remove()删除数组中的一个元素
3:(int i)删除数组中索引值为i的元素
4:Reverse()反转数组的元素
5:Sort()以从小到大的顺序排列数组的元素
6:Clone()复制一个数组
一:ArrayList:
ArrayList可以不用指定维数 可动态赋值 赋不同类型值
1 ArrayList arrayList1 = new ArrayList(); 2 arrayList1. 3 arrayList1.Add("a"); 4 arrayList1.Add(1); 5 arrayList1.Add("b"); 6 Response.Write(arrayList1[1]);
二:Array:
Array的容量是固定的 先指定大小 在赋值
1 Array arrayList2 = Array.CreateInstance(typeof(string), 6); 2 arrayList2.SetValue("a", 0); 3 arrayList2.SetValue("b", 1); 4 Response.Write(arrayList2.GetValue(1));
List泛型集合:
泛型集合List<T>
泛型最重要的应用就是集合操作,使用泛型集合可以提高代码重用性,类型安全和更佳的性能。
List<T>的用法和ArrayList相似,List<T>有更好的类型安全性,无须拆,装箱。
在泛型定义中,泛型类型参数“<T>”是必须指定的,其中T是定义泛型类时的占位符,其并不是一种类型,仅代表某种可能的类型。在定义时T会被使用的类型代替。泛型集合List<T>中只能有一个参数类型,“<T>”中的T可以对集合中的元素类型进行约束。
eg:
List<T>添加、删除、检索元素的方法和ArrayList相似,明显的特点是不需要像ArrayList那样装箱和拆箱。
1 List < Student > students = new List < Student > (); 2 Student stu1 = new Student(); 3 stu1.Name = "陆小凤"; 4 stu1.Number = "0801"; 5 stu1.Score = 20; 6 Student stu2 = new Student(); 7 stu2.Name = "西门吹雪"; 8 stu2.Number = "0802"; 9 stu2.Score = 23; 10 students.Add(stu1); 11 students.Add(stu2); 12 Console.WriteLine("集合中的元素个数为{0}", students.Count); 13foreach (Student stu in students) 14 { 15 Console.WriteLine("/t{0}/t{1}/t{2}", stu.Name, stu.Number, stu.Score); 16 } 17 students.Remove(stu1); 18 Console.WriteLine("集合中的元素个数为{0}", students.Count); 19 Console.ReadLine();
List<T>和ArrayList的区别
List<T>和ArrayList的相同点:添加元素、删除元素、通过索引访问元素方法相同。
List<T>和ArrayList的不同点:
ArrayList可以添加任意类型元素;List<T>对添加的元素具有类型约束;
ArratList添加时装箱,读取时拆箱;List<T>不需要装箱,拆箱操作;
1 // 创建Person对象 2 Person p1 = new Person("张三", 30); 3 Person p2 = new Person("李四", 20); 4 Person p3 = new Person("王五", 50); 5//创建类型为Person的对象集合 6 List < Person > persons = new List < Person > (); 7//将Person对象放入集合 8 persons.Add(p1); 9 persons.Add(p2); 10 persons.Add(p3); 11//输出第2个人的姓名12 Console.WriteLine(persons[1].Name); 13foreach (Person p in persons) 14 { 15 Console.WriteLine("/t{0}/t{1}", p.Name, p.Age); 16 }
今天暂时到这里,慢慢理解,我脑子也脑子有点儿不够用了,头疼过去过去就好了
2017-11-04 11:40:11
原文:http://www.cnblogs.com/TheJoker/p/7782924.html
内容总结
以上是互联网集市为您收集整理的C#集合与泛型集合全部内容,希望文章能够帮你解决C#集合与泛型集合所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。