书签 分享 收藏 举报 版权申诉 / 57
上传文档赚钱

类型JAVA泛型与集合框架课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2929035
  • 上传时间:2022-06-12
  • 格式:PPT
  • 页数:57
  • 大小:1.22MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《JAVA泛型与集合框架课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    JAVA 集合 框架 课件
    资源描述:

    1、2010-1-101Java面向对象程序设计面向对象程序设计第第13章章配合例子源代码一起使用例子源代码一起使用Power point 制作:耿祥义 张跃平泛型与集合框架2010-1-102主要内容主要内容泛型泛型链表链表堆栈堆栈散列映射散列映射树集树集树映射树映射难点难点树映射树映射导读导读2010-1-103在在jdk1.2之后,之后,Java提供了实现常见数据结构的类,提供了实现常见数据结构的类,这些实现数据结构的类通称为这些实现数据结构的类通称为Java集合框架。在集合框架。在JDK1.5后,后,Java集合框架开始支持泛型,本章首先介集合框架开始支持泛型,本章首先介绍泛型,然后讲解常

    2、见数据结构类的用法。绍泛型,然后讲解常见数据结构类的用法。 概述概述2010-1-10413.1 泛型泛型 泛型(泛型(GenericsGenerics)是在是在JDK1.5JDK1.5中推出的,其中推出的,其主要目的是可以建立具有类型安全的集合框架,主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。如链表、散列映射等数据结构。 2010-1-10513.1.1 泛型类声明泛型类声明 可以使用可以使用“class 名称名称”声明一个类声明一个类,为为了和普通的类有所区别,这样声明的类称作泛型类了和普通的类有所区别,这样声明的类称作泛型类,如:如: class People

    3、参考:参考:Cone.javaCone.java 2010-1-10613.1.2 使用泛型类声明对象使用泛型类声明对象 泛型类声明和创建对象时,类名后多了一对泛型类声明和创建对象时,类名后多了一对“”,而且必须要用具体的类型替换而且必须要用具体的类型替换“”中的泛型。例如:中的泛型。例如: Cone Cone coneOneconeOne; ; coneOneconeOne =new Cone(new Circle(); =new Cone(new Circle(); 例题例题13-113-12010-1-10713.1.3 泛型接口泛型接口 可以使用可以使用“interface inter

    4、face 名称名称 ”声明一个声明一个接口,这样声名的接口称作泛型接口如接口,这样声名的接口称作泛型接口如 interface Computerinterface Computer 例题例题13-213-22010-1-1088.1 Java中的集合类结构 Java提供了提供了集合类集合类(Collection)及其及其API,于是用户可以通,于是用户可以通过统一的操作接口,使得从一种数据结构到另一种数据结过统一的操作接口,使得从一种数据结构到另一种数据结构的转换极为方便,简化了程序员编程时的负担。构的转换极为方便,简化了程序员编程时的负担。 任何集合框架包括三部分内容任何集合框架包括三部分内

    5、容:对外的接口对外的接口接口的实现接口的实现对集合运算的算法对集合运算的算法集合集合API的根是一个集合接口,存放于的根是一个集合接口,存放于java.util包中。包中。Collection接口定义了所有属于集合的类都应该具有的通用接口定义了所有属于集合的类都应该具有的通用方法。方法。2010-1-1098.1 Java中的集合类结构 Java集合框架结构由两颗接口树构成:集合框架结构由两颗接口树构成: 第一棵树根节点为第一棵树根节点为Collection接口接口,它定义了所有,它定义了所有集合的基本操作,如添加、删除、遍历等。集合的基本操作,如添加、删除、遍历等。 它的子接口它的子接口Se

    6、t、List等则提供了更加特殊的等则提供了更加特殊的功能。功能。 2010-1-1010Collection接口接口 Collection Set List SortedSet AbstractSet TreeSet HashSet AbstractList ArrayList Vector AbstractSequentialList Stack LinkedList 2010-1-1011第二棵树根节点为第二棵树根节点为Map接口接口。与哈希表类。与哈希表类似,保持的是键值对的集合,可以通过似,保持的是键值对的集合,可以通过键来实现对值元素的快速访问。键来实现对值元素的快速访问。2010-

    7、1-1012Map接口接口 Map AbstractMap TreeMap HashtMap WeakHashMap 第二棵树根节点为第二棵树根节点为Map接口。与哈希表类接口。与哈希表类似,保持的是键值对的集合,可以通过似,保持的是键值对的集合,可以通过键来实现对值元素的快速访问。键来实现对值元素的快速访问。2010-1-10132010-1-10148.2 Collection8.2 Collection接口接口方法名功能说明boolean add(Object o)插入单个对象boolean addAll(Collection c)添加另外一个集合对象c中的所有对象Object toAr

    8、ray()以数组的形式返回内容Object toArray(Object a)以数组的形式返回内容Iterator iterator()返回一个实现了Iterator接口的对象void clear()清空所有对象boolean remove(Object o)删除指定的对象boolean ramoveAll(Collection c)删除c中所拥有的对象boolean retainAll(Collection c)保留指定的对象boolean contains(Object o)检查是否包含有指定的对象boolean containsAll(Collection c)检查是否包含c中所包含的对

    9、象boolean isEmpty()判断集合是否为空int size()获取集合中的对象个数2010-1-101513.2 List13.2 List接口接口 List接口接口是包含是包含有序元素有序元素的一种的一种Collection子接子接口,其中的元素口,其中的元素必须按序存放必须按序存放。元素之间的顺。元素之间的顺序关系可以由插入的时间先后决定,也可以由序关系可以由插入的时间先后决定,也可以由元素值的大小决定。元素值的大小决定。 List接口接口使用类似于数组下标的使用类似于数组下标的索引索引的概念表示的概念表示元素在元素在List 中的位置。用户能够使用索引来访中的位置。用户能够使用

    10、索引来访问问List 中的元素。索引从中的元素。索引从0开始。为了保持元素开始。为了保持元素的有序的特性,的有序的特性,List接口新增加了大量的方法,接口新增加了大量的方法,使之能够在序列中间根据具体位置添加和删除使之能够在序列中间根据具体位置添加和删除元素。元素。 2010-1-101613.2 链表链表 链表是由若干个称作节点的对象组成的一种链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节数据结构,每个节点含有一个数据和下一个节点的引用点的引用 。 2010-1-1017List接口的主要方法接口的主要方法 方法名功能说明void add(int index

    11、,Object element)在指定位置上添加一个对象boolean addAll(int index,Collection c) 将c中的所有对象添加到指定位置ListIterator listIterator()返回一个ListIteratorListIterator listIterator(int index)返回指定的ListIteratorObject get(int index)返回指定位置的对象Object remove(int index)删除指定位置的对象Object set(int index,object element)用元素element取代位置index上的元素

    12、,返回被取代的元素int indexOf(object o)返回第一个匹配对象的位置int lastIndexOf(object o)返回最后一个匹配对象的索引2010-1-101813.2.1 LinkedList 类类 LinkedList类类提供了使用双向链表实现提供了使用双向链表实现数据存储的方法,可按序号检索数据,数据存储的方法,可按序号检索数据,并能够进行向前或向后遍历。并能够进行向前或向后遍历。 由于插入数据时只需要记录元素的前由于插入数据时只需要记录元素的前后项即可,所以插入数度较快,因此适后项即可,所以插入数度较快,因此适合于在链表中间需要频繁进行插入和删合于在链表中间需要频

    13、繁进行插入和删除的操作。除的操作。2010-1-101913.2.1 LinkedListLinkedList泛型类泛型类 LinkedListLinkedList泛型类泛型类创建的对象以链表结构存储数据,创建的对象以链表结构存储数据,习惯上称习惯上称LinkedListLinkedList类创建的对象为链表对象。例如,类创建的对象为链表对象。例如,LinkedListLinkedList mylistmylist=new =new LinkedListLinkedList();();创建一个空双链表。创建一个空双链表。 add(Eadd(E objobj) ) 向链表依次增加节点向链表依次增

    14、加节点 2010-1-1020Linkedlist接口的主要方法 方法名功能说明public boolean add(Object element) 向链表末尾添加一个新的结点public boolean add(int index,Object o) 将对象o添加到链表中由index指定位置public boolean addFirst(Object o)将对象o添加到链表的头部public boolean addLast(Object o)将对象向o添加到链表的末尾public boolean clear()删除链表的所有节点,成为空链表public Object remove(int i

    15、ndex)删除指定位置上的结点public Object remove(Object o)删除首次出现含有o的结点public Object get (int index)返回链表中index位置处的结点对象2010-1-1021 ArrayList类类是是List接口的一个接口的一个可变长可变长数组的数组的实现,即一个实现,即一个ArrayList类对象可以动态改变大类对象可以动态改变大小。每个小。每个ArrayList类对象都有一个容量类对象都有一个容量(Capacity),用于存储元素的数组的大小。容量,用于存储元素的数组的大小。容量可随着不断添加新元素而自动增加。可随着不断添加新元素而

    16、自动增加。 序列以初始长度创建,当长度超过时,集合序列以初始长度创建,当长度超过时,集合自动变大;当删除对象时,集合自动变小。集合自动变大;当删除对象时,集合自动变小。集合中允许存储中允许存储null值。值。ArrayList类的随机访问速度类的随机访问速度快,但是向表中插入和删除比较慢。快,但是向表中插入和删除比较慢。 当需要插入大量元素时,在插入前可以调用当需要插入大量元素时,在插入前可以调用ensureCapacity 方法来增加方法来增加ArrayList 的容量以的容量以提高插入效率。提高插入效率。8.4.2 ArrayList 类类2010-1-1022 ArrayList常用的构

    17、造函数如下:常用的构造函数如下: ArrayList ():构建一个空的:构建一个空的ArrayList对象。对象。 ArrayList (Collection c):构建一个构建一个ArrayList对象,对象,并且将集合并且将集合c中所有元素添加进去。中所有元素添加进去。 ArrayList (int initialCapacity):构建一个拥有特构建一个拥有特定容量的空定容量的空ArrayList对象。对象。 ArrayList的很多成员方法与的很多成员方法与LinkedList相似,两相似,两者的本质区别是一个使用顺序结构,另一个使用者的本质区别是一个使用顺序结构,另一个使用链表结构

    18、,因此,它也可以使用链表结构,因此,它也可以使用LinkedList类提类提供的方法进行列表的操作。供的方法进行列表的操作。8.4.2 ArrayList 类类2010-1-10232010-1-10248.5 Iterator接口接口 除了使用集合对象的除了使用集合对象的get()方法可以实现对方法可以实现对集合中的元素的遍历外。利用迭代器集合中的元素的遍历外。利用迭代器(Iterator)也可以实现元素遍历。也可以实现元素遍历。 迭代器迭代器是一个实现了是一个实现了Iterator接口或者接口或者ListIterator接口的对象。接口的对象。ListIterator继承继承了了Itera

    19、tor,可以进行双向遍历以及元素的,可以进行双向遍历以及元素的修改。修改。2010-1-10252010-1-1026 Iterator迭代器只能迭代器只能前向循环前向循环,如果需,如果需要双向遍历,则可以使用更高级的要双向遍历,则可以使用更高级的ListIterator迭代器迭代器,ListIterator接口继承接口继承自自Iterator接口。接口。 ListIterator迭代器除了有迭代器除了有next()方法外,方法外,还新增了还新增了hasprevious()方法和方法和previous()方方法,实现前向遍历。法,实现前向遍历。ListIterator还可以定还可以定位当前的索

    20、引位置,调用位当前的索引位置,调用nextIndex()和和previousIndex()就可以实现。就可以实现。 2010-1-10272010-1-10282010-1-102913.3 Stack类类 在在Java语言中,语言中,Stack类类是是java.util包中专门用来包中专门用来实现栈的工具类。实现栈的工具类。 Stack类继承自类继承自Vector类,因此它类,因此它是是Vector的一的一个子类,实现了一个后进先出的堆栈个子类,实现了一个后进先出的堆栈。 Stack类继承了类继承了Vector类的所有方法,还新增了类的所有方法,还新增了一些方法使得一些方法使得Vector类

    21、能够实现堆栈的操作。类能够实现堆栈的操作。2010-1-10301、创建、创建Stack类对象类对象 public Stack();它建立一个空的堆栈;它建立一个空的堆栈2、压栈与出栈操作、压栈与出栈操作 public Object push(Object item):将指定的对象压入栈:将指定的对象压入栈 public Object pop():将栈顶的对象从栈中取出:将栈顶的对象从栈中取出3、检查栈是否为空、检查栈是否为空 public boolean empty():测试堆栈是否为空,若堆栈中:测试堆栈是否为空,若堆栈中没有对象元素,则返回没有对象元素,则返回true,否则返回,否则返回

    22、false4、查看栈顶端的数据,但不删除该数据。、查看栈顶端的数据,但不删除该数据。 public object peek()5、获取数据在堆栈中的位置、获取数据在堆栈中的位置。最顶端的位置是。最顶端的位置是1,向下,向下依次增加。如果堆栈不含有此数据,则返回依次增加。如果堆栈不含有此数据,则返回-1。 public search(Object data)例例:13.62010-1-103113.4 Map及及HashMap接口接口2010-1-1032Map接口的主要方法接口的主要方法 方法名功能说明Object put(Object key,Object value) 插入新的对象,并用k

    23、ey作为其键字void putAll(Map t)将另一个Map中的所有对象复制进来Set entrySet()返回映射中的关键字值对的集合Set keySet()返回映射中所有关键字的集合Collection values()返回映射中所有值的集合Object remove(Object key)删除指定的对象Object get(Object key)获取与key相联系的对象boolean containsKey(Object key)判断是否包含指定的键值boolean containsValue(Object value)判断是否包含指定的对象2010-1-1033 Map接口的一个抽

    24、象类是接口的一个抽象类是AbstractMap。在这个抽象类中,部分地实现了在这个抽象类中,部分地实现了Map接口接口中的成员方法,使得具体的映射类不必实中的成员方法,使得具体的映射类不必实现现Map接口中的每个成员方法。接口中的每个成员方法。 AstractMap抽象类有三个子类:抽象类有三个子类:TreeMap HashMap WeakHashMap: AstractMap抽象类抽象类2010-1-1034 (1) TreeMap描述了一个按键值升序排列的映射描述了一个按键值升序排列的映射,它有一些扩展的方法,如它有一些扩展的方法,如firstKey(),lastKey()等,还可以从等,

    25、还可以从TreeMap中指定一个范围以取得中指定一个范围以取得其子其子Map。 (2) HashMap描述的一个映射中允许存储空对象,描述的一个映射中允许存储空对象,由于键必须唯一,所以只能有一个空键值。由于键必须唯一,所以只能有一个空键值。 (3)WeakHashMap是一种改进的是一种改进的HashMap,它,它描述了一个映射,当集合中的某些内容不再使描述了一个映射,当集合中的某些内容不再使用时需清除掉无用的数据,并使用垃圾回收机用时需清除掉无用的数据,并使用垃圾回收机制进行回收。制进行回收。AstractMap抽象类抽象类2010-1-1035 HashMap通过哈希运算可以快速查找一个

    26、键,通过哈希运算可以快速查找一个键,因此在适合于在因此在适合于在Map中插入、删除和定位元素。中插入、删除和定位元素。如果要按照如果要按照自然顺序或者自定义顺序自然顺序或者自定义顺序遍历关键字,遍历关键字,TreeMap会更好些。会更好些。 2HashMap 2010-1-1036 由于由于HashMap实现了实现了Map接口,因此它没有自接口,因此它没有自己的新方法。己的新方法。HashMap的构造方法如下:的构造方法如下:HashMap():创建一个空的创建一个空的HashMap集合。集合。HashMap(Map t):创建一个哈希集,将创建一个哈希集,将t中所有元素添中所有元素添加进去。

    27、加进去。HashMap(int initialCapacity):创建一个拥有特定容量创建一个拥有特定容量的空的空HashMap集合。集合。HashMap(int initialCapacity,float loadFactor):创建创建一个拥有特定容量和加载因子的空一个拥有特定容量和加载因子的空HashMap。2010-1-1037 散列表中的容量散列表中的容量 是指能够存储对象的数量。是指能够存储对象的数量。当对象存储的数目到达容量乘以加载因子的值时,当对象存储的数目到达容量乘以加载因子的值时,容量将会自动地增加到原容量的容量将会自动地增加到原容量的2倍加倍加1,加,加1的目的是确保散列

    28、表的容量为质数或奇数。的目的是确保散列表的容量为质数或奇数。 例如例如:aMap对象最初的容量为对象最初的容量为151,当存储对象的数量,当存储对象的数量达到达到91时,容量将会自动增加到时,容量将会自动增加到303。2010-1-103813.4 散列映射散列映射 13.4.1 HashMapHashMap泛型类泛型类 HashMap对象采用散列表这种数据结构存储数据,习对象采用散列表这种数据结构存储数据,习惯上称惯上称HashMap对象为散列映射。对象为散列映射。 例如例如HashMapHashMap hashtablehashtable= = HashSetHashSet ();();

    29、hashtable可以存储可以存储“键键/值值”对数据。对数据。 相关方法:相关方法:public V public V put(Kput(K key,Vkey,V value) value)将键将键/值对数据存放到散列映射中,该方法同时返值对数据存放到散列映射中,该方法同时返回键所对应的值。回键所对应的值。 2010-1-1039 loadFactor是是0.0 1.0之间的一个数,通常之间的一个数,通常默认为默认为0.75。加载因子定义了哈希集合。加载因子定义了哈希集合充满什么程度时就要增加容量。即当元充满什么程度时就要增加容量。即当元素的数目大于哈希集容量和加载因子之素的数目大于哈希集容

    30、量和加载因子之积时,哈希集容量将扩展。积时,哈希集容量将扩展。2010-1-1040HashMap类的主要成员方法方法描述Object put(Object key,Object value)用键值key存储对象valuevoid putAll(Map map)将map中的所有键值/对象传递给当前的散列表Object get(Object key)返回键值key所对应的对象remove(Object key)删除key键值所对应的对象Set KeySet()返回一个Set对象,其内容为所有的键值Set entrySet()返回一个Set对象,其内容为所有的键值/对象对Collection va

    31、lues()返回一个Collection对象,其内容为散列表中存储的所有对象Object getKey()返回对象的键值Object getValue()返回所对应的对象void setValue(Object new)将对象设置为new2010-1-104113.4.2 常用方法常用方法 public void clear()public void clear() 清空散列映射。清空散列映射。public Object clone()public Object clone() 返回当前散列映射的一个克隆。返回当前散列映射的一个克隆。public public booleanboolean c

    32、ontainsKey(ObjectcontainsKey(Object key) key) 如果散列映射有如果散列映射有“键键/ /值值”对使对使用了参数指定的键,方法返回用了参数指定的键,方法返回truetrue,否则返回否则返回falsefalse。 public public booleanboolean containsValue(ObjectcontainsValue(Object value) value) 如果散列映射有如果散列映射有“键键/ /值值”对的值是参数指定的值。对的值是参数指定的值。public V public V get(Objectget(Object key)

    33、 key) 返回散列映射中使用返回散列映射中使用keykey做键的做键的“键键/ /值值”对中的对中的值。值。public public booleanboolean isEmptyisEmpty()() 如果散列映射不含任何如果散列映射不含任何“键键/ /值值”对,方法返对,方法返回回truetrue,否则返回否则返回falsefalse。public V public V remove(Objectremove(Object key) key) 删除散列映射中键为参数指定的删除散列映射中键为参数指定的“键键/ /值值”对,对,并返回键对应的值。并返回键对应的值。public public

    34、intint size() size() 返回散列映射的大小,即散列映射中返回散列映射的大小,即散列映射中“键键/ /值值”对的数目。对的数目。2010-1-104213.6 树映射树映射 TreeMapTreeMap类类实现了实现了MapMap接口接口,称,称TreeMapTreeMap对象为树映射。对象为树映射。 树映射使用树映射使用public V public V put(Kput(K key,Vkey,V value); value);方法添加方法添加节点节点。 例题例题13-913-92010-1-104313.4.3 遍历散列映射遍历散列映射 public Collection

    35、values() public Collection values()方法返回一个实现方法返回一个实现CollectionCollection接口类接口类创建的对象。创建的对象。 使用接口回调技术,即将该对象的引用赋给使用接口回调技术,即将该对象的引用赋给CollectionCollection接口接口变量,该变量,该接口变量可以回调接口变量可以回调iteratoriterator()()方法方法获取一个获取一个IteratorIterator对象,这个对象,这个IteratorIterator对对象存放着散列映象存放着散列映 射中所有射中所有“键键/ /值值”对中的对中的“值值”。 2010

    36、-1-104413.5 Set13.5 Set接口接口 Set接口是一种不包含重复元素的接口是一种不包含重复元素的Collection的的子接口。子接口。 Set接口中并没有引入新方法,它提供的基本接口中并没有引入新方法,它提供的基本方法和方法和Collection接口类似。接口类似。2010-1-10452010-1-1046 Set接口派生了一个接口派生了一个SortedSet接口和一个抽象类接口和一个抽象类AbstractSet。SortedSet接口用来描述有序的元素集合,接口用来描述有序的元素集合,TreeSet实现了这个接口,它将放入其中的元素按序存实现了这个接口,它将放入其中的元

    37、素按序存放,要求其中的对象是可排序的。放,要求其中的对象是可排序的。 抽象类抽象类AbstractSet实现了部分实现了部分Collection接口,并有一接口,并有一个子类个子类HashSet,它以散列方式表示集合内容。,它以散列方式表示集合内容。 2010-1-104713.5 树集树集 13.5.1 TreeSetTreeSet泛型类泛型类 TreeSet类创建的对象称作树集。类创建的对象称作树集。 例如例如 TreeSetTreeSet mytreemytree=new =new TreeSeTreeSe();(); 然后使用然后使用addadd方法为树集添加节点,方法为树集添加节点,

    38、例如例如 mytree.add(boymytree.add(boy); ); 2010-1-104813.5.2 节点的大小关系节点的大小关系 树集用树集用addadd方法添加节点,节点会按其存放的数据的方法添加节点,节点会按其存放的数据的“大小大小”顺序一层一层地依次排列,在同一层中的节点从左到右按顺序一层一层地依次排列,在同一层中的节点从左到右按“大小大小”顺序递增排列,下一层的都比上一层的小。顺序递增排列,下一层的都比上一层的小。 2010-1-104913.5.3 TreeSetTreeSet类的常用方法类的常用方法 public public booleanboolean add(E

    39、add(E o) o) 向树集添加加节点。向树集添加加节点。public void clear()public void clear() 删除树集中的所有节点。删除树集中的所有节点。public void public void contains(Objectcontains(Object o) o) 如果树集中有包含参数指定的对象,该方法返如果树集中有包含参数指定的对象,该方法返回回truetrue,否则返回否则返回false false 。public E first()public E first() 返回树集中的第一个节点中的数据(最小的节点)。返回树集中的第一个节点中的数据(最小的节

    40、点)。public E last()public E last() 返回最后一个节点中的数据(最大的节点)。返回最后一个节点中的数据(最大的节点)。public public isEmptyisEmpty()() 判断是否是空树集,如果树集不含任何节点,该方法返回判断是否是空树集,如果树集不含任何节点,该方法返回true true 。public public booleanboolean remove(Objectremove(Object o) o) 删除树集中的存储参数指定的对象的最小节删除树集中的存储参数指定的对象的最小节点。点。public public intint size()

    41、size() 返回树集中节点的数目。返回树集中节点的数目。 例题例题13-813-82010-1-1050HashSet类 HashSet类类是实现了是实现了Set接口的标准类,它创建了一个接口的标准类,它创建了一个使用哈希表存储的集合,能快速定位一个元素,从而使用哈希表存储的集合,能快速定位一个元素,从而可以优化查询的速度,特别是在查找大集合时可以优化查询的速度,特别是在查找大集合时HashSet类比较有用。类比较有用。HashSet的构造函数如下:的构造函数如下:HashSet():创建一个空的哈希集。创建一个空的哈希集。HashSet(Collection c):创建一个哈希集,并且将集

    42、合创建一个哈希集,并且将集合c中所有元素添加进去。中所有元素添加进去。HashSet(int initialCapacity):创建一个拥有特定容量创建一个拥有特定容量的空哈希集。的空哈希集。HashSet(int initialCapacity,float loadFactor):创建创建一个拥有特定容量和加载因子的空哈希集。一个拥有特定容量和加载因子的空哈希集。2010-1-1051 泛型是泛型是JDK 1.5以上版本的新特性,以上版本的新特性,泛型的本质是参泛型的本质是参数化类型数化类型,也就是说所操作的数据类型被指定为一个,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在

    43、类、接口和方法的创建参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。中,分别称为泛型类、泛型接口和泛型方法。 在在JDK 1.5之前,没有泛型的情况的下,通过对类型之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的的引用来实现参数的“任意化任意化”。“任意化任意化”带来的缺点是要做显式的强制类型转换,而这种转换带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提的。对于强制类型转换错误的情况,编译器可能不提示错误,但在运行的时候可能会出现异常,这是一个示错误,但在运行的时候可能会出现异常,这是一个安全隐患。泛型的引入很好地解决了这一问题。安全隐患。泛型的引入很好地解决了这一问题。8.9 泛型程序设计泛型程序设计2010-1-10522010-1-10532010-1-10542010-1-10552010-1-10562010-1-1057

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:JAVA泛型与集合框架课件.ppt
    链接地址:https://www.163wenku.com/p-2929035.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库