版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1 JAVA泛型与集合框架泛型与集合框架PPT课件课件 2010-1-102 主要内容主要内容 泛型泛型 链表链表 堆栈堆栈 散列映射散列映射 树集树集 树映射树映射 难点难点 树映射树映射 第1页/共58页 2010-1-103 在在jdk1.2之后,之后,Java提供了实现常见数据结构的提供了实现常见数据结构的 类,这些实现数据结构的类通称为类,这些实现数据结构的类通称为Java集合框架。在集合框架。在 JDK1.5后, 后,Java集合框架开始支持泛型,本章首先介集合框架开始支持泛型,本章首先介 绍泛型,然后讲解常见数据结构类的用法。绍泛型,然后讲解常见数据结构类的用法。 第2页/
2、共58页 2010-1-104 泛型(泛型(GenericsGenerics)是在是在JDK1.5JDK1.5中推出的,中推出的, 其主要目的是可以建立具有类型安全的集合框其主要目的是可以建立具有类型安全的集合框 架,如链表、散列映射等数据结构。架,如链表、散列映射等数据结构。 第3页/共58页 2010-1-105 可以使用可以使用“class 名称名称”声明一个类声明一个类, 为了和普通的类有所区别,这样声明的类称作泛型类为了和普通的类有所区别,这样声明的类称作泛型类, 如:如: class People 参考:参考:Cone.javaCone.java 第4页/共58页 2010-1-1
3、06 泛型类声明和创建对象时,类名后多了一对泛型类声明和创建对象时,类名后多了一对“” ,而且必须要用具体的类型替换,而且必须要用具体的类型替换“”中的泛型。例中的泛型。例 如:如: Cone coneOne; Cone coneOne; coneOne =new Cone(new Circle(); coneOne =new Cone(new Circle(); 例题例题13-113-1 第5页/共58页 2010-1-107 可以使用可以使用“interface interface 名称名称 ”声明一个声明一个 接口,这样声名的接口称作泛型接口如接口,这样声名的接口称作泛型接口如 inte
4、rface Computerinterface Computer 例题例题13-213-2 第6页/共58页 2010-1-108 第7页/共58页 2010-1-109 第8页/共58页 2010-1-1010 Collection Set List SortedSet AbstractSet TreeSet HashSet AbstractList ArrayList Vector AbstractSequentialList Stack LinkedList 第9页/共58页 2010-1-1011 第10页/共58页 2010-1-1012 Map AbstractMap TreeMa
5、p HashtMap WeakHashMap 第11页/共58页 2010-1-1013 第12页/共58页 2010-1-1014 方法名功能说明 boolean add(Object o)插入单个对象 boolean addAll(Collection c)添加另外一个集合对象c中的所有对象 Object toArray()以数组的形式返回内容 Object toArray(Object a)以数组的形式返回内容 Iterator iterator()返回一个实现了Iterator接口的对象 void clear()清空所有对象 boolean remove(Object o)删除指定的对
6、象 boolean ramoveAll(Collection c)删除c中所拥有的对象 boolean retainAll(Collection c)保留指定的对象 boolean contains(Object o)检查是否包含有指定的对象 boolean containsAll(Collection c)检查是否包含c中所包含的对象 boolean isEmpty()判断集合是否为空 int size()获取集合中的对象个数 第13页/共58页 2010-1-1015 第14页/共58页 2010-1-1016 链表是由若干个称作节点的对象组成的一链表是由若干个称作节点的对象组成的一 种数
7、据结构,每个节点含有一个数据和下一个种数据结构,每个节点含有一个数据和下一个 节点的引用节点的引用 。 第15页/共58页 2010-1-1017 方法名功能说明 void add(int index,Object element)在指定位置上添加一个对象 boolean addAll(int index,Collection c) 将c中的所有对象添加到指定位置 ListIterator listIterator()返回一个ListIterator ListIterator listIterator(int index)返回指定的ListIterator Object get(int ind
8、ex)返回指定位置的对象 Object remove(int index)删除指定位置的对象 Object set(int index,object element)用元素element取代位置index上的元 素,返回被取代的元素 int indexOf(object o)返回第一个匹配对象的位置 int lastIndexOf(object o)返回最后一个匹配对象的索引 第16页/共58页 2010-1-1018 第17页/共58页 2010-1-1019 LinkedListLinkedList泛型类泛型类创建的对象以链表结构存储数据,习惯上称创建的对象以链表结构存储数据,习惯上称Li
9、nkedListLinkedList类创建的对象为链表对象。例如,类创建的对象为链表对象。例如, LinkedList mylist=new LinkedList();LinkedList mylist=new LinkedList(); 创建一个空双链表。创建一个空双链表。 add(E obj)add(E obj) 向链表依次增加节点向链表依次增加节点 第18页/共58页 2010-1-1020 方法名功能说明 public boolean add(Object element) 向链表末尾添加一个新的结点 public boolean add(int index, Object o) 将对
10、象o添加到链表中由index指定 位置 public boolean addFirst(Object o)将对象o添加到链表的头部 public boolean addLast(Object o)将对象向o添加到链表的末尾 public boolean clear()删除链表的所有节点,成为空链表 public Object remove(int index)删除指定位置上的结点 public Object remove(Object o)删除首次出现含有o的结点 public Object get (int index)返回链表中index位置处的结点对象 第19页/共58页 2010-1-
11、1021 第20页/共58页 2010-1-1022 第21页/共58页 2010-1-1023 第22页/共58页 2010-1-1024 第23页/共58页 2010-1-1025 第24页/共58页 2010-1-1026 previousIndex()就可以实现。就可以实现。 第25页/共58页 2010-1-1027 第26页/共58页 2010-1-1028 第27页/共58页 2010-1-1029 第28页/共58页 2010-1-1030 第29页/共58页 2010-1-1031 第30页/共58页 2010-1-1032 方法名功能说明 Object put(Object
12、 key,Object value) 插入新的对象,并用key作为其键 字 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
13、 value) 判断是否包含指定的对象 第31页/共58页 2010-1-1033 WeakHashMap: 第32页/共58页 2010-1-1034 第33页/共58页 2010-1-1035 第34页/共58页 2010-1-1036 第35页/共58页 2010-1-1037 第36页/共58页 2010-1-1038 HashMap对象采用散列表这种数据结构存储数据,习惯上称对象采用散列表这种数据结构存储数据,习惯上称HashMap对象为散列映射。对象为散列映射。 例如例如 HashMap hashtable= HashSet();HashMap hashtable= HashSet
14、(); hashtable可以存储可以存储“键键/值值”对数据。对数据。 相关方法:相关方法: public V put(K key,V value)public V put(K key,V value)将键将键/值对数据存放到散列映射中,该方法同时值对数据存放到散列映射中,该方法同时 返回键所对应的值。返回键所对应的值。 第37页/共58页 2010-1-1039 第38页/共58页 2010-1-1040 方法描述 Object put(Object key,Object value) 用键值key存储对象value void putAll(Map map)将map中的所有键值/对象传递给
15、当前的散列表 Object get(Object key)返回键值key所对应的对象 remove(Object key)删除key键值所对应的对象 Set KeySet()返回一个Set对象,其内容为所有的键值 Set entrySet()返回一个Set对象,其内容为所有的键值/对象对 Collection values()返回一个Collection对象,其内容为散列表中存 储的所有对象 Object getKey()返回对象的键值 Object getValue()返回所对应的对象 void setValue(Object new)将对象设置为new 第39页/共58页 2010-1-1
16、041 public void clear()public void clear() 清空散列映射。清空散列映射。 public Object clone()public Object clone() 返回当前散列映射的一个克隆。返回当前散列映射的一个克隆。 public boolean containsKey(Object key)public boolean containsKey(Object key) 如果散列映射有如果散列映射有“键键/ /值值”对使对使 用了参数指定的键,方法返回用了参数指定的键,方法返回truetrue,否则返回否则返回falsefalse。 public boo
17、lean containsValue(Object value)public boolean containsValue(Object value) 如果散列映射有如果散列映射有“键键/ /值值” 对的值是参数指定的值。对的值是参数指定的值。 public V get(Object key)public V get(Object key) 返回散列映射中使用返回散列映射中使用keykey做键的做键的“键键/ /值值”对中的对中的 值。值。 public boolean isEmpty()public boolean isEmpty() 如果散列映射不含任何如果散列映射不含任何“键键/ /值值”
18、对,方法返回对,方法返回 truetrue,否则返回否则返回falsefalse。 public V remove(Object key)public V remove(Object key) 删除散列映射中键为参数指定的删除散列映射中键为参数指定的“键键/ /值值”对对 ,并返回键对应的值。,并返回键对应的值。 public int size()public int size() 返回散列映射的大小,即散列映射中返回散列映射的大小,即散列映射中“键键/ /值值”对的数目对的数目 。 第40页/共58页 2010-1-1042 TreeMapTreeMap类类实现了实现了MapMap接口接口,
19、称,称 TreeMapTreeMap对象为树映射。对象为树映射。 树映射使用树映射使用public V put(K key,V value);public V put(K key,V value);方法添加节点方法添加节点。 例题例题13-913-9 第41页/共58页 2010-1-1043 public Collection values() public Collection values()方法返回一个实现方法返回一个实现CollectionCollection接口接口 类创建的对象。类创建的对象。 使用接口回调技术,即将该对象的引用赋给使用接口回调技术,即将该对象的引用赋给Colle
20、ctionCollection接口接口变量,该变量,该 接口变量可以回调接口变量可以回调iterator()iterator()方法方法获取一个获取一个IteratorIterator对象,这个对象,这个IteratorIterator对对 象存放着散列映象存放着散列映 射中所有射中所有“键键/ /值值”对中的对中的“值值”。 第42页/共58页 2010-1-1044 第43页/共58页 2010-1-1045 第44页/共58页 2010-1-1046 第45页/共58页 2010-1-1047 TreeSet类创建的对象称作树集。类创建的对象称作树集。 例如例如 TreeSet mytr
21、ee=new TreeSe(); TreeSet mytree=new TreeSe(); 然后使用然后使用addadd方法为树集添加节点,方法为树集添加节点,例如例如 mytree.add(boy); mytree.add(boy); 第46页/共58页 2010-1-1048 树集用树集用addadd方法添加节点,节点会按其存放的数据的方法添加节点,节点会按其存放的数据的“大小大小”顺序一层一层地依次排列,在同一层中的节点从左到右按顺序一层一层地依次排列,在同一层中的节点从左到右按“大小大小”顺序递增排列,下一层的都比上一层的小。顺序递增排列,下一层的都比上一层的小。 第47页/共58页
22、2010-1-1049 public boolean add(E o)public boolean add(E o) 向树集添加加节点。向树集添加加节点。 public void clear()public void clear() 删除树集中的所有节点。删除树集中的所有节点。 public void contains(Object o)public void contains(Object o) 如果树集中有包含参数指定的对象,该方法返如果树集中有包含参数指定的对象,该方法返 回回truetrue,否则返回否则返回false false 。 public E first()public E
23、first() 返回树集中的第一个节点中的数据(最小的节点)。返回树集中的第一个节点中的数据(最小的节点)。 public E last()public E last() 返回最后一个节点中的数据(最大的节点)。返回最后一个节点中的数据(最大的节点)。 public isEmpty()public isEmpty() 判断是否是空树集,如果树集不含任何节点,该方法返回判断是否是空树集,如果树集不含任何节点,该方法返回true true 。 public boolean remove(Object o)public boolean remove(Object o) 删除树集中的存储参数指定的对象
24、的最小节删除树集中的存储参数指定的对象的最小节 点。点。 public int size()public int size() 返回树集中节点的数目。返回树集中节点的数目。 例题例题13-813-8 第48页/共58页 2010-1-1050 第49页/共58页 2010-1-1051 第50页/共58页 2010-1-1052 第51页/共58页 2010-1-1053 第52页/共58页 2010-1-1054 第53页/共58页 2010-1-1055 第54页/共58页 2010-1-1056 第55页/共58页 2010-1-1057 JDK1.5新增的基本类型数据和相应的对象新增的基本类型数据和相应的对象 之间相互自动转换的功能,称作基本数据类型之间相互自动转换的功能,称作基本数据类型 的自动装箱与拆箱的自动装箱与拆箱(Autoboxing and Auto-Unboxing of Primitive Types)。 例题例题13-1013-10 第56页/共58页 2010-1-1058 1使用使用“class 名称名称”声明一个泛型类,当使用泛型类声明对象声明一个泛型类,当使用泛型类声明对象 时,必须要用具体的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中三年级英语学科中考一轮复习单元整合教案:Unit 9 I like music that I can dance to
- 一、盲校高中物理必修一知识清单:牛顿第三运动定律
- 小学四年级英语上册《我的书包》词汇与表达教案
- 2026年养老服务综合考试题(附答案)
- 2026年酒店工程运维培训考试试卷及答案
- 2026年小学数学五年级下册第7单元应用题测试
- 2026年福建省苏教版初中物理电学基础知识点习题集
- 2026年广东省北师大版高中物理必修第一册单元测试卷
- 2026年四川省北师大版五年级数学上册第二十四单元期中测试卷
- 2026年交通安全常识测试题库
- 肺功能检查质控标准课件
- 成都盐道街中学2026小升初入学分班考试语文考试试题及答案
- 冠脉介入术后无复流现象防治策略
- IT运维工作汇报
- 卫生协管员培训教材及考试考点
- 老年综合评估案例汇报
- 国开学位英语考试真题及答案
- 2025江苏中吴环保产业发展有限公司电镀产业园运营总监岗招聘2人笔试备考试题及答案解析
- 个体工商户登记申请书、提交材料规范、经营者变更登记承诺书
- 肌肉注射的试题及答案
- 手术室护理清点不良事件
评论
0/150
提交评论