《JavaOOP第2章深入集合框架上.ppt》由会员分享,可在线阅读,更多相关《JavaOOP第2章深入集合框架上.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、深入集合框架(上)深入集合框架(上)Java高级编程高级编程第二章第二章课程目标课程目标理解集合 了解集合的体系结构使用ArrayList编写自己的ArrayList理解集合理解集合集合是一个保存其他对象的对象,更准确的说,集合是一种存储机制,可以添加和删除元素以及访问甚至更新元素的值。集合的体系结构集合的体系结构Collection接口接口Collection接口除了实现映射的集合类之外的所有集合类定义了一些方法。这个接口不会引用项目在集合中可能存在的任何顺序。Collection接口中的方法接口中的方法booleanbooleanaddadd(Eo)确保此确保此 collection co
2、llection 包含指定的元素(可选操作)。包含指定的元素(可选操作)。voidvoidclear()clear()移除此移除此 collection collection 中的所有元素(可选操作)。中的所有元素(可选操作)。booleanbooleancontains(Objectcontains(Objecto)o)如果此如果此 collection collection 包含指定的元素,则返回包含指定的元素,则返回 truetrue。booleanbooleanisEmpty()isEmpty()如果此如果此 collection collection 不包含元素,则返回不包含元素,则
3、返回 truetrue。IteratorIteratoriterator()iterator()返回在此返回在此 collection collection 的元素上进行迭代的迭代器。的元素上进行迭代的迭代器。booleanbooleanremove(Objectremove(Objecto)o)从此从此 collection collection 中移除指定元素的单个实例,如果存在的话(可选操作)。中移除指定元素的单个实例,如果存在的话(可选操作)。intintsize()size()返回此返回此 collection collection 中的元素数。中的元素数。ObjectObjectt
4、oArray()toArray()返回包含此返回包含此 collection collection 中所有元素的数组。中所有元素的数组。List接口接口List集合类型描述了一种按位置存储数据的对象,第一个元素位于位置0,第二个位于是,依此类推,最后一个元素位置位于n-1(size()-1)List常用方法常用方法booleanbooleanadd(Eadd(Eo)o)向列表的尾部追加指定的元素(可选操作)。向列表的尾部追加指定的元素(可选操作)。voidvoidadd(intadd(intindex,Eindex,Eelement)element)在列表的指定位置插入指定元素(可选操作)。在
5、列表的指定位置插入指定元素(可选操作)。比较指定的对象与列表是否相等。比较指定的对象与列表是否相等。E Eget(intget(intindex)index)返回列表中指定位置的元素。返回列表中指定位置的元素。intintindexOf(ObjectindexOf(Objecto)o)返回列表中首次出现指定元素的索引,如果列表不包含此元素,则返回返回列表中首次出现指定元素的索引,如果列表不包含此元素,则返回 -1-1。IteratorIteratorEiterator()iterator()返回以正确顺序在列表的元素上进行迭代的迭代器。返回以正确顺序在列表的元素上进行迭代的迭代器。intint
6、lastIndexOf(ObjectlastIndexOf(Objecto)o)返回列表中最后出现指定元素的索引,如果列表不包含此元素,则返回返回列表中最后出现指定元素的索引,如果列表不包含此元素,则返回 -1-1。List常用方法常用方法ListIteratorlistIterator()返回列表中元素的列表迭代器(以正确的顺序)。ListIteratorlistIterator(intindex)返回列表中元素的列表迭代器(以正确的顺序),从列表的指定位置开始。Eremove(intindex)移除列表中指定位置的元素(可选操作)。Esetset(intindex,Eelement)用指定
7、元素替换列表中指定位置的元素(可选操作)。intsize()返回列表中的元素数。List接口的实现接口的实现List接口的实现类有:ArrayList和LinkedList这两种数据结构提供相同的基于索引的方法这两种数据类型运行时间和效率大不相同ArrayListArrayList集合特性(集合特性(1 1)是一种在内存连续区域 中存储数据的通用数组,底层的存储是一个允许直接访问的数组动态增长,以满足应用程序的需要ArrayListArrayList集合特性(集合特性(2 2)一种能够在尾部动态增长以满足应用程序需求的通用数组。在列表尾部插入或删除非常有效,但是在ArrayList之内的这些操
8、作并不十分有效。为什么在ArrayList之内操作插入删除数据不是很有效?使用使用ArrayList注册登记员保管的毕业清单含有大四毕业生的姓名及其获得的学位BS或BA,并且按照毕业生的字母顺序排列。在毕业典礼上,首先向获得BS学位的学生颁发毕业证书。随后再向获得BA学位的学生颁毕业证书。这个程序从文件gradlist.dat中读取注册登记员保管的毕业清单,该清单由多行数据组成,每一行数据都含有制表符分隔的学生姓名及其获得的学位。应用程序在ArrayList集合中插入由姓名和学位组成的串,其中获得BS学位的毕业生信息被插入ArrayList集合diplomaList中,获得BA学位的毕业生信息
9、被插入ArrayList集合baList,通过将baList添加到diplomaList的末尾来连接两个列表,最后输出连接后的列表实现实现ArrayListArrayList(1 1)ArrayList的设计ArrayList对象使用一个指定类型的私有数组listArr来存储元素,它的大小表示存储ArrayList元素的可用存储量,私有的整数变量listSize维护ArrayList中实际元素数。实现实现ArrayListArrayList(2 2)准备更大的容量方法ensureCapacity()是ArrayList类的实现中的一个重要操作,它提供了允许ArrayList对象进行动态增长的存
10、储管理空间。实现实现ArrayListArrayList(3 3)添加和删除的方法基于索引的add(),remove()方法以及get()和set()方法需要一个索引的实参,这个索引的实参必须位于使操作有效的特定范围之内。所以需要一个rangeCheck()来验证指定索引是否位于指定的范围之内。接着再来实现add(),add(index,item),add(item),remove()方法,remove(index)方法,remove(item)方法实现实现ArrayListArrayList(4 4)实现索引访问实现get()和set()方法总结总结集合是一个保存其他对象的对象Collection接口除了实现映射的集合类之外的所有集合类定义了一些方法List集合类型描述了一种按位置存储数据的对象ArrayList是一种在内存连续区域中存储数据的通用数组