JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA

上传人:E**** 文档编号:89243439 上传时间:2019-05-21 格式:PPT 页数:36 大小:590.51KB
返回 下载 相关 举报
JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA_第1页
第1页 / 共36页
JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA_第2页
第2页 / 共36页
JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA_第3页
第3页 / 共36页
JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA_第4页
第4页 / 共36页
JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA》由会员分享,可在线阅读,更多相关《JAVA语言面向对象程序设计 教学课件 ppt 作者 马俊 ppt 11JAVA(36页珍藏版)》请在金锄头文库上搜索。

1、数据结构、集合框架,第十一章,目标,了解数据结构的概念 掌握java的集合框架的体系结构 掌握常用的集合类和接口 了解泛型类,简介,按照传统的理解,一个程序应包括以下两个方面: 对数据的描述 在程序中要制定数据的类型和数据的组织方式,我们称为数据结构。 对操作的描述 即操作的步骤,也就是我们说的算法。 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。著名的计算机科学家沃斯(Nikiklaus Wirth)提出一个公式: 数据结构+算法=程序 实际上数据结构代表数据在空间上的一种排列方式,而算法代表数据在时间上的动态变化。作为程序员,必须掌握各种基本的数据结构和算法,就跟我们

2、研究自然世界的各种物质组成是一样的道理;我们研究的物质的静态组成以及它的运动规律,我们也研究物质的内部组成,即研究作为某一物质特有的结构和其外部表现之间的联系。,Java对数据结构的支持,集合 将多个元素组成一个单元的对象 用于存储、检索、操纵和传输数据 集合框架 提供用于管理对象集合的接口和类 包括接口、实现和算法,体系结构,用于操纵集合的接口,Collection接口,集合框架的根 通用方法 boolean contains(Object a) boolean equals(Object a) Iterator iterator() int size() void clear() bool

3、ean add(Object a),Set接口,扩展Collection接口 不允许重复元素 对 add()、equals() 和 hashcode() 方法添加了限制 HashSet和TreeSet是Set的实现,SortedSet接口,扩展了Set接口 元素按升序排序 重要异常 ClassCastException NullPointerException,List接口 2-1,具有顺序的集合 扩展了Collection接口 元素可以通过其整型下标访问 可以包含重复元素,List接口 2-2,方法分类 定位方法 get()、set()、add()、remove()、addAll() 搜索方

4、法 indexOf() 和 lastIndexOf() ListIterator方法 listIterator() 和 subList(),Map接口,将键映射至值的对象 每个键最多都只能映射至一个值 重要方法 基本操作 put()、get()、remove()、containsKey()、containsValue()、size() 和 isEmpty() 批操作 putAll() 和 clear() 集合视图 keySet()、values() 和 entrySet(),实现 2-1,用于存储集合的实际数据对象 重要集合类 AbstractCollection类提供Collection接口

5、的框架实现 AbstractList 类提供 List 接口的框架实现 AbstractSequentialList 类是 List 接口的实现 LinkedList 类提供多个方法,用于在列表开始处和结尾 处获得、删除和插入元素,实现 2-2,重要集合类(续) ArrayList 类是 List 接口的可变大小数组实现 AbstractSet 类提供 Set 接口的框架实现 HashSet 类为基本操作提供固定时间性能 TreeSet 类确保排序集将按元素升序,example,import java.util.*; public class ListOper public static vo

6、id main(String args) if(args.length=0) System.out.println(“你必须提供列表元素,作为命令行参数。请重试!“); System.exit(0); System.out.println(); List l=new ArrayList(); for(int i=0;iargs.length;i+) l.add(argsi); Collections.reverse(l); System.out.println(“逆序的列表如下:“); System.out.println(l); Collections.sort(l); System.out

7、.println(“排序的列表如下:“); System.out.println(l); int index=Collections.binarySearch(l,“c“); System.out.println(“元素 “c”的位置为:“+index); Collections.fill(l,“一“);,System.out.println(“用字“一”填充后的列表如下:“); System.out.println(l); List ll=new ArrayList(); ll.add(“第一“); ll.add(“第二“); ll.add(“第三“); Collections.copy(l

8、,ll); System.out.println(“用ll的元素替代后的列表如下:“); System.out.println(l); ,算法 3-1,Collections 类中的静态方法 用于排序、搜索、混排和数据操纵 方法的第一个参数是要执行操作的集合 重要异常 ClassCastException UnsupportedOperationException,算法 3-2,算法 3-3,class AlgorithmExample public static void main(String args) LinkedList link = new LinkedList(); link.a

9、dd(new Integer(10); link.add(new Integer(35); link.add(new Integer(23); link.add(new Integer(54); link.add(new Integer(36); Comparator cmp = Collections.reverseOrder(); Collections.sort(link, cmp); Iterator it = link.iterator(); System.out.println(“逆序排序的列表为: “); while (it.hasNext() System.out.printl

10、n(it.next(); System.out.println(“给定列表中的最大值为:“+Collections.max(link); System.out.println(“给定列表中的最小值为:“+Collections.min(link); ,多简单!,集合框架的优点,提供一组可用的集合接口 提供有效的数据结构和算法 可以方便地扩展或改写集合 接口的实现都是可交换的 使设计新 API 的工作降到最少 接口和算法的可重用性,Vector类,实现可变长度的对象数组 组件可以使用整型下标访问 构造函数 Vector() Vector(Collection c) Vector(int cap)

11、 Vector(int cap,int inc),Enumeration接口: 此接口定义了多个方法,有助于枚举对象集合中的元素。 Boolean hasMoreElements() Object nextElement(),Enumeration e=v.elements(); While(e.hasMoreElements() System.out.println(e.nextElement(); ,Stack类,表示后进先出的对象堆栈 一个构造函数,创建空堆栈 Stack(),import java.util.*; class StackEg public static void mai

12、n(String args) Stack s=new Stack(); s.push(“一“); s.push(“二“); s.push(“三“); s.push(“四“); System.out.println(“存储在堆栈中的元素为:“); System.out.println(s); System.out.println(“=“); while(!s.empty() System.out.println(s.pop(); ,Hashtable类,以键值对的形式存储数据 键被散列,散列码用作存储值的下标 构造函数 Hashtable( ) Hashtable(int cap) Hashta

13、ble(int cap, float load) Hashtable(Map m),import java.util.*; class HashTableExample public static void main(String args) Hashtable h = new Hashtable(); Enumeration e; String str; double bal; h.put(“Maria“, new Double(4545.50); h.put(“Joseph“, new Double(2000.00); h.put(“Johnson“, new Double(5000.00

14、); e = h.keys(); while (e.hasMoreElements() str = (String) e.nextElement(); System.out.println(str + “: “ + h.get(str); System.out.println(); bal = ( (Double) h.get(“Maria“).doubleValue(); h.put(“Maria“, new Double(bal + 1000); System.out.println(“Marias new balance: “ + h.get(“Maria“); ,Properties类

15、,Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。 参考javadoc,位集(BitSet),位集是由“二进制位”构成的一个Vector。 适用场合:高效率保存大量“开关”信息。 优点:节省空间 缺点: 速度比固有类型的数组慢 最小长度64位,如果存8位数据,用BitSet显得浪费。,枚举器(Enumeration),要求集合的elements()方法要求集合提供一个Enumeration。

16、 nextElement(),首次调用返回第一个对象,再次调用返回 下一个对象。 hasMoreElements(),检查序列中是否还有更多的对象。,public class Cat private int catNumber; Cat(int i) catNumber = i; void print() System.out.println(“Cat #“ + catNumber); ,public class Dog private int dogNumber; Dog(int i) dogNumber = i; void print() System.out.println(“Dog #“ + dogNumber); ,枚举器演示,import java.util.*; public class CatsAndDogs p

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号