欢迎来到天天文库
浏览记录
ID:46172770
大小:283.00 KB
页数:16页
时间:2019-11-21
《JAVA开发 葵花宝典 18》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第18章数据结构的接口本章将重点讲述数据结构中的一些基本概念,同时还讲述什么是Collection接口,什么又是Iterator接口,使用什么类来实现这些接口。本章得目的主要是对数据结构的接口做一个初步的、概念性的介绍,让读者能够清楚这些接口的用处,以便在实际开发中灵活运用。18.1数据结构接口及实现本节讲述数据结构的优点,数据结构其实就是规定数据是以何种形式存储,例如以队列的形式、以散列表的形式、还是以树的形式或者以映像的形式存储。每一种存储方式都有不同的优势,因为每一种结构对应着存储不同种类的数据,只要使用了好的数据结构,那么读
2、取或搜索数据将会更快、更准确。数据按一定的方式组织起来就是数据结构,他体现了数据与数据之间的关系,可以从两个角度来分类:一个是存储结构,另一个是逻辑结构。18.1.1数据结构接口的实质为了能够说明数据结构的含义,先解释下面的一些基本概念。数据是对客观事物的符号的表示,是所有能输入到计算机中,并被计算机程序处理的符号的总称。数据元素是数据的基本单位,在计算机程序中通常作为一个整体来处理。一个数据元素由多个数据项组成,数据项是数据不可分割的最小单位。数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一个二元组,记为:d
3、ata_structure=(D,S)。其中D为数据元素的集合,S是D上关系的集合。(具体内容请参照本书)18.1.2用实例来熟悉数据结构接口的实现下面举一个有关数据结构的接口的实例,通过这个实例,观察Java如何使用数据结构的接口来实现对数据的存储。这个实例会引用到一个数据结构:ArrayList结构,目前还没有讲到这个结构。其实,本例的用意是让读者了解通过数据结构的接口,如何实现数据存储,并加深对数据接口这个概念的理解。(具体内容请参照本书)18.2Collection集合接口与Iterator迭代器接口什么是Collectio
4、n接口?什么是Iteraltor接口?它们有什么用处?使用频率高吗?带着这些疑问阅读本节,对数据结构将有更深的了解。18.2.1熟悉Collection集合接口Collection接口是数据集合接口,它位于数据结构API的最上部。构成Collection的单位,被称之为元素。接口提供了添加、删除元素等管理数据的功能。根据数据管理的方法不同,可将Collection接口分成为三个部分,分别是:map接口、set接口、list接口,如图18.1所示。(具体内容请参照本书)18.2.2List链表接口和Set接口List接口和Set接口是
5、两个非常有用的集合接口,日常开发中用到的数组和列表等,基本上都从这两个接口实现而来。本节通过对它们的比较,详细了解这种集合接口。1.List接口2.Set接口18.2.3Map映射接口Map没有继承Collection接口,其提供key到value的映射。Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合、一组value集合或一组key-value映射。1.Hashtable哈希表类2.HashMap哈希映射类3.WeakHashMap弱哈希映射类18.
6、2.4Iterator迭代器接口Iterator是一个集合的迭代器,通过Iterator访问接口而不用关心集合的实现。Iterator接口中定义了三个方法:hasNext()是否还有下一个元素.next()返回下一个元素.remove()删除当前元素.那什么是迭代器呢?迭代器指向两个元素中间的位置,当调用hasnext()方法时,如果返回true,此时调用next()方法返回下一元素。迭代器指向下两个元素之间的位置,如果要删除下一个元素,必须先next(),再remove()。(具体内容请参照本书)18.2.5通过实例来认识迭代器的
7、实现下面通过一个实例,演示如何实现JavaCollection中的迭代器。1.迭代器的代码实现2.迭代器的适用情况18.3常见疑难解答(具体内容请参照本书)18.3.1Collection集合接口和Collections集合类的区别答:Collection和Collections的区别有以下几点:Collections是java.util下的类,它包含各种有关集合操作的静态方法。Collection是java.util下的接口,它是各种集合结构的父接口。List、Set、Map是否继承自Collection接口List,Set是继承
8、自Collection接口,Map不是继承自Collection接口。18.3.2ArrayList数组列表类和Vector存储类的区别答:ArrayList和Vector的区别有两点:同步性:Vector是线程安全的,是同步的。而A
此文档下载收益归作者所有