Java-2实用教程第4版-第15章-泛型与集合框架-PPT.ppt
《Java-2实用教程第4版-第15章-泛型与集合框架-PPT.ppt》由会员分享,可在线阅读,更多相关《Java-2实用教程第4版-第15章-泛型与集合框架-PPT.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第第15章章 泛型与泛型与集合框架集合框架 配合例子源代码一起使用 Java 语言程序设计语言程序设计 辽宁省教育软件大赛参赛作品辽宁省教育软件大赛参赛作品 1导读导读主要内容主要内容泛型泛型链表链表堆栈堆栈散列映射散列映射树集树集树映射树映射重点和难点重点和难点重点:泛型和集合的使用重点:泛型和集合的使用难点:集合的使用难点:集合的使用概述概述在在jdk1.2之后,之后,Java提供了实现常见数据结构的类,这些实现提供了实现常见数据结构的类,这些实现数据结构的类通称为数据结构的类通称为Java集合框架。在集合框架。在JDK1.5后,后,Java集合框集合框架开始支持泛型,本章首先介绍泛型,
2、然后讲解常见数据结构架开始支持泛型,本章首先介绍泛型,然后讲解常见数据结构类的用法。类的用法。15.1 泛型泛型泛型(泛型(Generics)是在是在JDK1.5中推出的,其主要目的是可以建中推出的,其主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。立具有类型安全的集合框架,如链表、散列映射等数据结构。15.1.1 泛型类声明泛型类声明可以使用可以使用“class 名称名称”声明一个类声明一个类,为了和普通的为了和普通的类有所区别,这样声明的类称作泛型类类有所区别,这样声明的类称作泛型类,如:如:class People 其中其中People是泛型类的名称,是泛型类的名称
3、,E是其中的泛型,也就是说我们并是其中的泛型,也就是说我们并没有指定没有指定E是何种类型的数据,它可以是任何对象或接口,但是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据。不能是基本类型数据。15.1.2 使用泛型类声明对象使用泛型类声明对象泛型类声明和创建对象时,类名后多了一对泛型类声明和创建对象时,类名后多了一对“”,而且必须,而且必须要用具体的类型替换要用具体的类型替换“”中的泛型。例如:中的泛型。例如:Cone coneOne;coneOne=new Cone(new Circle();例子例子1(Example15_1.java,Cone.java,Rect.java,
4、Circle.java)中,声明了一个泛型类:Cone,一个Cone对象计算体积时,只关心它的底是否能计算面积,并不关心底的类型。运行效果如图15.1。15.2 链表链表链表是由若干个称作节点的对象组成的一种数据结构,每个节链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用点含有一个数据和下一个节点的引用。15.2.1 LinkedListLinkedList泛型类泛型类LinkedList泛型类创建的对象以链表结构存储数据,习惯上泛型类创建的对象以链表结构存储数据,习惯上称称LinkedList类创建的对象为链表对象。例如,类创建的对象为链表对象。例如,L
5、inkedList mylist=new LinkedList();创建一个空双链表。创建一个空双链表。add(E obj)向链表依次增加节点向链表依次增加节点大家有疑问的,可以询问和交流大家有疑问的,可以询问和交流可以互相讨论下,但要小声点可以互相讨论下,但要小声点可以互相讨论下,但要小声点可以互相讨论下,但要小声点大家有疑问的,可以询问和交流大家有疑问的,可以询问和交流可以互相讨论下,但要小声点可以互相讨论下,但要小声点可以互相讨论下,但要小声点可以互相讨论下,但要小声点15.2.2 LinkedListLinkedList泛型类常用方法泛型类常用方法 LinkedList泛型类实现泛型类
6、实现Lis泛型接口中的一些常用方法。泛型接口中的一些常用方法。public boolean add(E element)向链表末尾添加一个新的节点,该节点中的向链表末尾添加一个新的节点,该节点中的数据是参数数据是参数elememt指定的数据。指定的数据。public void add(int index,E element)向链表的指定位置添加一个新的节点,向链表的指定位置添加一个新的节点,该节点中的数据是参数该节点中的数据是参数elememt指定的数据。指定的数据。public void clear()删除链表的所有节点,使当前链表成为空链表。删除链表的所有节点,使当前链表成为空链表。pub
7、lic E remove(int index)删除指定位置上的节点。删除指定位置上的节点。public boolean remove(E element)删除首次出现含有数据删除首次出现含有数据elemen的节点。的节点。public E get(int index)得到链表中指定位置处节点中的数据。得到链表中指定位置处节点中的数据。LinkedList泛型类本身新增加的一些常用方法泛型类本身新增加的一些常用方法 public void addFirst(E element)向链表的头添加新节点,该节点中的数据向链表的头添加新节点,该节点中的数据是参数是参数elememt指定的数据。指定的数据
8、。public void addLast(E element)向链表的末尾添加新节点,该节点中的数向链表的末尾添加新节点,该节点中的数据是参数据是参数elememt指定的数据。指定的数据。public E getFirst()得到链表中第一个节点中的数据。得到链表中第一个节点中的数据。public E getLast()得到链表中最后一个节点中的数据。得到链表中最后一个节点中的数据。public E removeFirst()删除第一个节点,并返回这个节点中的数据。删除第一个节点,并返回这个节点中的数据。15.2.3 遍历链表遍历链表当用户需要遍历集合中的对象时,应当使用该集合提供的迭代当用户
9、需要遍历集合中的对象时,应当使用该集合提供的迭代器,而不是让集合本身来遍历其中的对象。由于迭代器遍历集器,而不是让集合本身来遍历其中的对象。由于迭代器遍历集合的方法在找到集合中的一个对象的同时,也得到待遍历的后合的方法在找到集合中的一个对象的同时,也得到待遍历的后继对象的引用,因此迭代器可以快速地遍历集合。继对象的引用,因此迭代器可以快速地遍历集合。链表对象可以使用链表对象可以使用iterator()方法获取一个方法获取一个Iterator对象,该对象对象,该对象就是针对当前链表的迭代器。就是针对当前链表的迭代器。例子例子2 比较了使用迭代器遍历链表和比较了使用迭代器遍历链表和get(int
10、index)方法遍历链方法遍历链表的所用时间,运行效果如图表的所用时间,运行效果如图15.4。例子例子3 使用了使用了JDK1.5版本之前的版本之前的LinkedList。15.2.4 排序与查找排序与查找Collections类提供的用于排序和查找的类方法如下:类提供的用于排序和查找的类方法如下:public static sort(List list)该方法可以将list中的元素升序排列。int binarySearch(List list,T key,CompareTo c)使用折半法查找list是否含有和参数key相等的元素,如果key链表中某个元素相等,方法返回和key相等的元素在链
11、表中的索引位置(链表的索引位置从0考试),否则返回-1。例子例子4中,中,Student类通过实现类通过实现Comparable接口规定该类的对象接口规定该类的对象的大小关系(按的大小关系(按height值的大小确定大小关系,即学生按其身高值的大小确定大小关系,即学生按其身高确定之间的大小关系)。链表添加了确定之间的大小关系)。链表添加了3个个Student对象,对象,Collections调用调用sort方法将链表中的对象按身其方法将链表中的对象按身其height值升序排值升序排序,并查找一个对象的序,并查找一个对象的height值是否和链表中某个对象的值是否和链表中某个对象的height值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实用教程 15 集合 框架 PPT
限制150内