北大青鸟JAVA培训教材第19章集合框架.ppt
《北大青鸟JAVA培训教材第19章集合框架.ppt》由会员分享,可在线阅读,更多相关《北大青鸟JAVA培训教材第19章集合框架.ppt(31页珍藏版)》请在三一办公上搜索。
1、第19章 集合框架,在日常生活中,放衣服就是一门学问,是把衬衫和裤子等衣服都放在一个盒子中呢,还是每一件衣服放在一个盒子中呢,读者都知道这两种做法都是不好的,通常都是将一类衣服放在一起。同样,在Java中也提供了这样的功能,那就是集合框架。在前面已经学习了数组,集合框架也是和数组一样来保存一组数据。集合框架主要包括列表、集合和映射。通过本章的学习,读者应该完成如下几个目标。了解什么是集合框架和集合框架包括哪些形式。掌握什么是列表和列表中包括哪些类和接口。掌握什么是集合和集合中包括哪些类和接口。掌握什么是映射和映射中包括哪些类和接口。,19.1 集合框架总论,集合是某一类对象的通称呼,这类对象代
2、表以某种方式组合到一起的一组对象;它是将多个元素组合为一个单元的对象,用于存储,检索,操纵和传递数据。而对象的集合时,指的是对象引用的集合而不是对象的集合,在Java集合中只存储引用,对象在集合之外。集合框架提供用于管理对象集合的接口和类,它包括接口,实现和算法。,19.1.1 什么是集合框架,集合框架是Java提供的一些可以定义一个对象,该对象由其他的对象组成(如常见的向量(Vector)类)。集合框架是一个统一的可以代表及操作集合,并能对这些集合独立的进行操作的一些结构。集合框架的主要优点在于提高了编码效率、性能和复用性。Java集合框架提供了有效的数据结构及算法,因此程序员不需要自己去编
3、写实现这些功能。Java集合框架提供了高性能的数据结构及算法的实现。因为对各个接口的实现是可以互换的,因此程序很容易可以换接口。提高了Z软件的复用性:软件可以提供标准的集合框架的接口对其进行操作。,Java集合框架主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。在这些接口中Collection接口是层次结构中的根接口。在Collection接口中具有开发中经常用使用到的set接口、list接口和map接口。,19.1.2 Collection接口,在上一小节中已经知道,Collection接口是集合继承树中最顶层的接口,该接口声明了集合中常用到的一些通用方法,在表中给出了这些方
4、法。,19.2 列表,List列表作为集合中的一种,其主要特点在于其中的元素保持一定的顺序,并且元素是可以重复的。在本小节将具体讲解List的使用及其实现类(如ArrayList、LinkedList)的使用。List接口继承自Collection接口,代表列表的功能(角色),其中的元素可以按索引的顺序访问,所以也可以称之为有索引的Collection。实现该接口的类均属于Ordered类型,具有列表的功能,其元素顺序均是按添加(索引)的先后进行排列的。,19.2.1 List列表接口,除了继承了Collection声明的方法外,List接口在iterator、add、remove、equal
5、s和hashCode方法的基础上加了一些其他约定,超过了Collection接口中指定的约定。同时,List比Collection多了10个方法,这些方法可以分为访问方法、迭代器方法、搜索方法和插入、删除方法。List接口声明了3种对列表元素进行定位(索引)访问方法:Object get(int index):参数index表示将要需要得到元素的索引。该方法将返回此列表中指定index位置上的元素。List subList(int fromIndex,int toIndex):参数fromIndex为指定的起始索引,参数toIndex为指定的结束索引,该方法将返回一个新的列表,这个新的列表将包
6、含原来列表中从指定的起始索引到指定的结束索引并且不包含结束索引的元素。Object toArray():该方法将类表转换成一个Object类型的对象数组,该数组用元素的顺序与列表中元素的顺序相同,并将该数组返回。,List接口声明了特殊的迭代器,称为ListIterator,除了允许Iterator接口提供的正常操作外,该迭代器还允许元素插入和替换,以及双向访问。还提供了一个方法来获取从列表中指定位置开始的列表迭代器。List接口提供了对ListIterator的获取的两种方法,分别是listIterator方法和listIterator(int index)方法。List接口声明了两种搜索指
7、定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,这些方法将执行高开销的线性搜索。List接口对其声明如下:int indexOf(Object o):参数o为指定查找的元素,该方法将遍历整个列表查找指定元素o,若列表中存在,则返回第一个找到的元素的索引,若列表中不存在,则返回负数。int lastIndexOf(Object o):参数o为指定查找的元素,该方法将遍历整个列表查找指定元素o,若列表中存在,则返回最后一个找到的元素的索引,若列表中不存在,则返回负数。,List接口声明了两种在列表的任意位置高效插入和删除元素的方法。Object set(int index,Ob
8、ject element):参数index表示需要替换元素的索引。参数o表示将要替换为的元素。该方法操作成功后将返回替换掉的元素。Object remove(int index):参数index为将要移除元素的索引。返回从列表中移除的元素。该方法操作后所有后续元素均向前移动,即列表中间不能有空位。boolean remove(Object o)方法:参数o为指定的需要移除的元素。若列表包含一个或多个与指定o相同的元素,则移除该元素,并返回 true,否则返回false。boolean removeAll(Collection c)方法:参数c为包含指定需要移除元素的Collection,该方法
9、将列表中有的并且c中有的元素从set中移除,若有元素被移除set则返回true,否则返回false。boolean retainAll(Collection c)方法:参数c为包含指定需要保留元素的Collection,该方法将列表中有的并且c中没有的元素从set中移除,若有元素被移除set则返回true,否则返回false。的几种实现中,有三种最为常用的实现类,这三个类分别是Vector类、ArrayList类和LinkedList类。接下来将逐个介绍。,19.2.2 Vector类,Vector类也称为向量,从Java一诞生就有,后来被作为集合框架的一部分,其性能特点与ArrayList基
10、本上是相同的。不同之处是该类的功能方法是同步的,同一时刻只能有一个线程访问,没有特殊需要,现在一般都使用ArrayList,ArrayList会在下一小节中讲解。,Vector提供了用于增加元素的方法,方法如下所述。public void addElement(Object obj)方法:该方法是将指定的组件添加到该向量的末尾,并将其大小增加1。如果向量的大小比容量大,则增大其容量。public void addElement(int index,Object obj)方法:该方法在该向量的指定位置index插入指定的元素obj。并将当前位于该位置的元素及所有后续元素右移(即将元素索引加1)。
11、如果索引超出范围(即indexsize()),则程序抛出ArrayIndexOutOfBoundsException异常。public void insertElementAt(Object obj,int index)方法:该方法将指定对象作为此向量中的组件插入到指定的index处。,19.2.3 ArrayList类,本小节主要向读者介绍ArrayList类,其是List接口最常用的实现之一,可以向其中添加包括null值在内的所有对象引用型的元素,甚至该类对象引用自己也可以作为其中的元素,这样便可以方便的搭建一个树状结构的集合。ArrayList有三种构造方法,方法如下所示:public
12、ArrayList()方法:该构造器将构造一个空的ArrayList对象。该对象的初始容量为10。public ArrayList(int initialCapacity)方法:参数initialCapacity表示指定的初始容量,该构造器将构造一个具有指定容量的空ArrayList对象。public ArrayList(Collection c)方法:参数c为包含指定元素的Collection。该构造器将构造一个以c中的元素为初始内容的ArrayList对象。,ArrayList类和Vector类一样,同样也具有很多的方法,这里不可能为每一种方法都给出程序。,public boolean a
13、dd(Object o)该方法将指定的元素o追加到此列表的末尾public void add(int index,Object o)该方法将指定的元素o插入此列表中的指定index索引位置public boolean addAll(Collection c)该方法将对象c中的所有元素追加到此列表的末尾public boolean addAll(int index,Collection c)该方法将参数c中的所有元素从指定的index索引位置开始插入到此列表中public void clear()该方法删除列表对象中的所有元素public Object clone()该方法返回此ArrayLis
14、t对象的复制对象,返回为Object对象public boolean contains(Object elem)该方法用于判断此列表中是否包含指定的元素elem,如果包含则返回truepublic void ensureCapacity(int minCapacity)该方法用于增加此ArrayList对象的容量,以确保它至少能够容纳最小容量参数所指定的元素数public E get(int index)该方法返回此列表对象中指定索引index位置上的元素,public int indexOf(Object elem)该方法将返回给定参数elem元素第一次出现的位置public boolean
15、 isEmpty()该方法将判断此列表中是否没有元素public int lastIndexOf(Object elem)该方法返回指定的对象elem元素在列表中最后一次出现的位置索引public Object remove(int index)该方法删除此列表中指定位置index上的元素public boolean remove(Object o)该方法从此该列表中删除指定元素oprotected void removeRange(int fromIndex,int toIndex)该方法删除列表中索引在fromIndex和toIndex之间的所有元素。包括fromIndex,不包括toIn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北大 青鸟 JAVA 培训教材 19 集合 框架
链接地址:https://www.31ppt.com/p-6447583.html