Java泛型集合课件PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
Console.WriteLine(stu.Name);
}
遍历时不需要类型转换
List<T> 与 ArrayList
● 访问 List<T> 与 ArrayList 的对比
异同点 不同点
相同点
List<T> 增加元素时类型严格检查 无需类型转换 通过索引访问集合的元素 添加对象方法相同 通过索引删除元素
students.Add(zhang); … students.Add(sun);
将Student对象加入班级 将Teacher对象加入班级
编译出错
遍历List<Student>集合 只能保存Student对象
for (Student stu : students) {
Console.WriteLine(stu.Name); }
Console.WriteLine(student.Name); }
遍历Values
Dictionary<K,V>与哈希表
●访问 Dictionary<K,V> 与 哈希表 的对比
异同点 不同点
相同点
Βιβλιοθήκη Baidu
Dictionary<K,V>
哈希表
增加元素时类型严格检查 可以增加任何类型
无需类型转换
需要类型转换
Java泛型集合
单击此处添加副标题内容
汇报人姓名 2020/01/01
List<T>的使用
● 引入命名空间:System.Collections.Generic ● List<Student> students = new List<Student>(); ● 利用List<Student>存储班级集合
ArrayList 可以增加任何类型 需要类型转换
是否有哈希表那样存储Key和Value形式的泛型集合呢?
Dictionary<K,V>概述
● Dictionar y<K,V>具有List<T>相同的特性 ● <K,V>约束集合中元素类型 ● 编译时检查类型约束 ● 无需类型转换操作
● 与哈希表类似存储Key和Value的集合
不需类型转换
Student对象
什么是泛型集合
Teacher对象
允许添加
List<Student >
不允许添加
无需转换类型
Student对象
● 泛型最常见的用途是创建集合类 ● 泛型集合可以约束集合内的元素类型 ● 典型泛型集合List<T>,Dictionary<K,V> ● <T>、<K,V>表示该泛型集合中的元素类型
通过Key获取Value
添加对象方法相同
遍历方法相同
泛型的重要性
● 泛型集合与传统集合相比类型更安全
● 泛型集合无需类型转换操作
● 泛型的重要性
● 泛型是未来五年的主流技术之一 ● 解决了很多需要繁琐操作的问题 ● 提供了更好的类型安全性 ● CLR 支持泛型
总结
● 哈希表如何获取一个元素的Value? ● ArrayList与哈希表存取对象需要什么操作? ● List<T>中的T表示什么? ● 泛型集合与传统集合获取元素时的区别?
students.Add(zhang.Name, zhang);
添加一对Key/Value
… student stu2 = students[“王丽红"];
通过Key获取元素
…
students.Remove(“王丽红");
通过Key删除元素
//Dictionary<string, Student> 方式 for (Student student : students.Values) {
利用Dictionary<K,V>存储学生集合
Dictionary<string,Student> students = new Dictionary<string,Student>();
Key存储String类型
value存储 Student类型
Dictionary<K,V>的使用
Dictionary<K,V>的访问方式与哈希表相同
使用泛型集合List<T>
List<T>的访问方式与ArrayList相同
Student stu1 = students[2]; stu1.SayHi();
Students.RemoveAt(0);
使用索引访问,无需类型转换 利用索引删除
//List<Student> 方式
for (Student stu : students)