文档详情

Java-实用程序设计第章-容器类(共52张).pptx

发布:2025-04-07约2.91千字共51页下载文档
文本预览下载声明

;5.1容器的概念与相互关系

Java容器类的对象实例又称为容器,容器用于保存对象。根据所存储的元素的形式,可将容器按照接口不同划分为两大类:

(1)Collection:一个由一系列元素组成的序列,其中的元素是指向其他对象的引用。

(2)Map:一个由一系列“键值对〞组成的序列,允许通过键查找值。;;;;;5.2Set接口及其实现

Set不接受重复的元素。JavaSE中提供3种Set容器的实现:HashSet、TreeSet和LinkedHashSet。HashSet类采用Hash表实现Set接口,它的查询速度最快,但其中的元素没有固定顺序;TreeSet类采用红黑树结构实现了SortedSet接口,能够保证元素处于排序状态;LinkedHashSet类采用Hash表与链表结合的方式实现Set接口,它能够以插入顺序保存元素。;;;;;5.3List接口及其实现

与数组类似地,List也可以建立数字索引与具体对象的关联,区别在于List可以自动扩充容量。JavaSE中有两种类型的List:ArrayList和LinkedList。;;;(4)使用hasNext()方法检查序列中是否还有元素;

4Queue接口及其实现

1容器的概念与相互关系

Java容器类的对象实例又称为容器,容器用于保存对象。

第四十五页,共52页。

第四十七页,共52页。

第二十一页,共52页。

第五十一页,共52页。

对于不同类型的容器,遍历和操作的方式是不同的。

第三十三页,共52页。

第三十七页,共52页。

第三十一页,共52页。

第四十七页,共52页。

第五十一页,共52页。

EnumSet除了包含从Set接口继承的方法之外,还包含一些特有的接口方法,见表5-5。

这个类中对compareTo()方法的实现就是自然顺序的比较方法。

(4)使用previousIndex()方法返回下一次previous()方法调用将要返回的元素的索引;;;;;5.4Queue接口及其实现

Queue是一种先进先出(FIFO)的容器。程序从Queue的一端放入对象,从另一端取出对象,对象进入和取出的顺序是相同的。在JavaSE中,LinkedList实现了Queue接口,因此LinkedList可以用作Queue的一种实现。;;;;;;5.5Map接口及其实现

Map是一系列“键-值〞之间的映射关系,是一种将对象(而非数字)与对象相关联的设计。在很多情况下,这一设计都能够有效地解决问题,例如,当我们需要统计一篇论文中的各个英文单词的个数时,可创立一个由String映射到Integer的Map。Map的值可以是复杂的结构,例如,当希望将一个科学家与其发表的论文列表建立映射时,可以建立一个MapScientist,ListPaper。;;;;;5.6迭代器

List容器可以通过索引对其中的元素进行访问,Queue可以通过具体方法对队首的元素进行访问。对于不同类型的容器,遍历和操作的方式是不同的。但是在有些时候,需要应对这样的情况,对于不同类型的容器,我们希望能够通过同样的方式执行访问,这样就不需要根据不同的容器类型进行不同的编码。容器的迭代器(Iterator)针对这一需求给出了解决方法。;迭代器具有如下特征:

(1)迭代器只能单向移动;

(2)使用容器的iterator()方法返回容器的迭代器,迭代器准备返回容器的第一个元素;

(3)使用next()方法获得序列的下一个元素;

(4)使用hasNext()方法检查序列中是否还有元素;

(5)使用remove()将迭代器新近返回的元素(即由next()产生的最后一个元素)删除,因此在调用remove()之前必须先调用next()。;;;ListIterator是Iterator的子类型,它只能用于各类List容器的访问。通过List接口的listIterator方法能够返回用于List容器的ListIterator。与一般迭代器相比,ListIterator的功能更全面,除了具有Iterator接口所规定的行为特征以外,它还具有如下特征:

(1)使用hasPrevious()方法检查序列中是否有前一个元素;

(2)使用nextIndex()方法返回下一次next()方法调用将要返回的元素的索引;

(3)使用previous()方法返回序列中的前一个元素;;(4)使用previousIndex()方法返回下一次previous()方法调用将要返回的元素的索引;

(5)使用se

显示全部
相似文档