第12章泛型和容器类(第5版)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016/9/3
13
12.2.4 集合接口Set
Set集合中的对象不按特定的方式排序,只 是简单地把对象加入集合中即可,但加入 的对象一定不能重复。集合中元素的顺序 与元素加入集合的顺序无关。实现 Set接口 的两个主要类是哈希集合 HashSet 及树集合 TreeSet。见教材中例题【例12.9】和【例12.10】
2016/9/3
7
12.1.5泛型的类型通配符 和泛型数组的应用
使用通配符“?”创建泛型类对象,通配符的主 要作用是在创建一个泛型类对象时,限制这个泛型 类的类型是某个类或是继承该类的子类或是实现某 个接口的类。
见【例12.5】和【例12.6】
2016/9/3
8
12.wk.baidu.com.6继承泛型类与实现泛型接口
2016/9/3
12
12.2.3 列表接口List
列表接口List是Collection子接口,它是一种包含有序元
素的线性表,其中的元素必须按顺序存放,且可重复,
也可以是空值null。
表12.2给出了List接口的主要方法。
表12.3和表12.4分别给出了 LinkedList类和 ArrayList类的 构造方法。 表12.5和表12.6分别给出了 LinkedList类与 ArrayList类的 常用方法。应用见【例12.7】
2016/9/3
6
12.1.4 限制泛型的可用类型
在定义泛型类时,默认可以使用任何类型来实例 化一个泛型类对象,但Java语言也可以在用泛型类 创建对象时对数据类型做出限制。其语法如下: class ClassName<T extends anyClass> 其中anyClass是指某个类或接口。 见【例12.4】
2016/9/3
14
12.2.5映射接口Map
Map 中的元素都是成对出现的,它提供了 键 (Key) 到值 (Value) 的映射。值是指要存入 Map中的元素 (对象) ,在将元素存入 Map对 象时,需要同时给定一个键,键决定了元 素在Map中的存储位置。 常用的方法见表12.13-表12.16.
见教材中例题【例12.11】。
2016/9/3
15
再见!
2016/9/3
16
2016/9/3
4
12.1.2 泛型类及应用
在使用泛型定义的类创建对象时,即在泛型实 例化时,可以根据不同的需求给出类型参数T的具 体类型。 见【例12.1】
2016/9/3
5
12.1.3 泛型方法
要定义泛型方法,只需将泛型的类型参数置于 返回值前即可。在Java中任何方法包括静态方法和 构造方法都可声明为泛型方法。泛型方法除了定义 不同,调用时与普通方法一样。见【例12.2】和 【例12.3】
2016/9/3
2
12.1
泛型
泛型其实质就是将数据的类型 参数化,通过为类、接口及方法 设置类型参数来定义泛型。
2016/9/3
3
12.1.1 泛型的概念
泛型类的定义是在类名后面加上<T>,泛型接口 的定义是在接口名后面加上<T>,而泛型方法的 定义是在方法的返回值前面加上<T>,其头部定 义分别如下。 泛型类的定义:[修饰符] class 类名<T> 泛型接口的定义:[public] interface 接口名<T> 泛型方法的定义:[public] [static] <T> 返回值类 型 方法名(T 参数)
第12章
Java泛型与容器类
2016/9/3
1
本章主要内容:
类型参数 泛型类、泛型方法和泛型接口 泛型限制和泛型通配符 容器的遍历(也称迭代) 列表接口List及两个实现类:线性表类 LinkedList和数组列表类ArrayList 集合接口Set及两个实现类:哈希集合类 HashSet和树集合类TreeSet 映射接口Map及两个实现类:哈希映射类 HashMap和树映射类TreeMap
数据结构是可以存储对象的集合,在这里对象也称为 元素。 容器框架中的接口及实现这些接口的类继承关系如图 12.1所示。
2016/9/3
11
12.2.2 Collection接口
Collection接口通常不能直接使用,但该接 口提供了添加元素、删除元素、管理数据 的方法。 表12.1给出了Collection接口的常用方法
被定义为泛型的类或接口可被继承与实现。例如: public class ExtendClass<T1> { } class SubClass<T1,T2,T3> extends ExtendClass<T1> { }
2016/9/3
9
12.2容器类
容器类是 Java 以类库的形式供用户开发程序时可直 接使用的各种数据结构。
2016/9/3
10
12.2.1 Java容器框架
Java 容 器 框 架 中 有 两 个 名 称 分 别 为 “ Collection ” 和 “ Set ” 的 接 口 , 为 防 止 名 称 的 冲 突 , 本 书 将 “Collection ”译为容器,而将“Set”译为集合。Java
容器框架提供了一些现成的数据结构可供使用,这些
13
12.2.4 集合接口Set
Set集合中的对象不按特定的方式排序,只 是简单地把对象加入集合中即可,但加入 的对象一定不能重复。集合中元素的顺序 与元素加入集合的顺序无关。实现 Set接口 的两个主要类是哈希集合 HashSet 及树集合 TreeSet。见教材中例题【例12.9】和【例12.10】
2016/9/3
7
12.1.5泛型的类型通配符 和泛型数组的应用
使用通配符“?”创建泛型类对象,通配符的主 要作用是在创建一个泛型类对象时,限制这个泛型 类的类型是某个类或是继承该类的子类或是实现某 个接口的类。
见【例12.5】和【例12.6】
2016/9/3
8
12.wk.baidu.com.6继承泛型类与实现泛型接口
2016/9/3
12
12.2.3 列表接口List
列表接口List是Collection子接口,它是一种包含有序元
素的线性表,其中的元素必须按顺序存放,且可重复,
也可以是空值null。
表12.2给出了List接口的主要方法。
表12.3和表12.4分别给出了 LinkedList类和 ArrayList类的 构造方法。 表12.5和表12.6分别给出了 LinkedList类与 ArrayList类的 常用方法。应用见【例12.7】
2016/9/3
6
12.1.4 限制泛型的可用类型
在定义泛型类时,默认可以使用任何类型来实例 化一个泛型类对象,但Java语言也可以在用泛型类 创建对象时对数据类型做出限制。其语法如下: class ClassName<T extends anyClass> 其中anyClass是指某个类或接口。 见【例12.4】
2016/9/3
14
12.2.5映射接口Map
Map 中的元素都是成对出现的,它提供了 键 (Key) 到值 (Value) 的映射。值是指要存入 Map中的元素 (对象) ,在将元素存入 Map对 象时,需要同时给定一个键,键决定了元 素在Map中的存储位置。 常用的方法见表12.13-表12.16.
见教材中例题【例12.11】。
2016/9/3
15
再见!
2016/9/3
16
2016/9/3
4
12.1.2 泛型类及应用
在使用泛型定义的类创建对象时,即在泛型实 例化时,可以根据不同的需求给出类型参数T的具 体类型。 见【例12.1】
2016/9/3
5
12.1.3 泛型方法
要定义泛型方法,只需将泛型的类型参数置于 返回值前即可。在Java中任何方法包括静态方法和 构造方法都可声明为泛型方法。泛型方法除了定义 不同,调用时与普通方法一样。见【例12.2】和 【例12.3】
2016/9/3
2
12.1
泛型
泛型其实质就是将数据的类型 参数化,通过为类、接口及方法 设置类型参数来定义泛型。
2016/9/3
3
12.1.1 泛型的概念
泛型类的定义是在类名后面加上<T>,泛型接口 的定义是在接口名后面加上<T>,而泛型方法的 定义是在方法的返回值前面加上<T>,其头部定 义分别如下。 泛型类的定义:[修饰符] class 类名<T> 泛型接口的定义:[public] interface 接口名<T> 泛型方法的定义:[public] [static] <T> 返回值类 型 方法名(T 参数)
第12章
Java泛型与容器类
2016/9/3
1
本章主要内容:
类型参数 泛型类、泛型方法和泛型接口 泛型限制和泛型通配符 容器的遍历(也称迭代) 列表接口List及两个实现类:线性表类 LinkedList和数组列表类ArrayList 集合接口Set及两个实现类:哈希集合类 HashSet和树集合类TreeSet 映射接口Map及两个实现类:哈希映射类 HashMap和树映射类TreeMap
数据结构是可以存储对象的集合,在这里对象也称为 元素。 容器框架中的接口及实现这些接口的类继承关系如图 12.1所示。
2016/9/3
11
12.2.2 Collection接口
Collection接口通常不能直接使用,但该接 口提供了添加元素、删除元素、管理数据 的方法。 表12.1给出了Collection接口的常用方法
被定义为泛型的类或接口可被继承与实现。例如: public class ExtendClass<T1> { } class SubClass<T1,T2,T3> extends ExtendClass<T1> { }
2016/9/3
9
12.2容器类
容器类是 Java 以类库的形式供用户开发程序时可直 接使用的各种数据结构。
2016/9/3
10
12.2.1 Java容器框架
Java 容 器 框 架 中 有 两 个 名 称 分 别 为 “ Collection ” 和 “ Set ” 的 接 口 , 为 防 止 名 称 的 冲 突 , 本 书 将 “Collection ”译为容器,而将“Set”译为集合。Java
容器框架提供了一些现成的数据结构可供使用,这些