web程序设计-第4章数组与容器PPT课件.pptx_第1页
web程序设计-第4章数组与容器PPT课件.pptx_第2页
web程序设计-第4章数组与容器PPT课件.pptx_第3页
web程序设计-第4章数组与容器PPT课件.pptx_第4页
web程序设计-第4章数组与容器PPT课件.pptx_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统 课程名 Web程序设计课程号 020213005课程网址 http 授课教师 马志强教师邮箱 mzq bim 2011 2012学年第二学期 内蒙古工业大学校级精品建设课程 Web程序设计课程组制作 第四章数组与容器 1 目录 4 1数组的声明与实例化4 2Arrays的使用功能4 3Java容器框架4 4ArrayList List的应用4 5Stack Queue的应用4 6Hashtable和HashMap的应用 2 4 1数组的声明与实例化 一 数组的概念 一组相同类型数据的有序集合 是一种数据结构 数组中数据成为元素 分为 基本类型数组和类类型数组 在Java提供的存储及随机访问对象序列的各种方法中 数组是效率最高的一种 使用步骤 声明 创建 初始化和应用 3 4 1数组的声明与实例化 二 数组的声明 1 数组的声明 说明 声明数组时不能指明数组元素的个数 声明一个数组并没有创建一个对象 此时并不能使用数组 类型 变量名 对象名 类型变量名 对象名 例如 int i或inti Student ss或Studentss 4 4 1数组的声明与实例化 2 创建数组 对象名 变量名 new类型 长度 说明 1 创建数组使用关键字new 创建时须指定类型和数组元素个数 2 创建基本数据类型数组 int i newint 2 3 创建引用数据类型数组 Student ss newStudent 100 或ss newStudent的子类 100 5 4 1数组的声明与实例化 3 数组的初始化 1 int i newint 2 3 Student ss newStudent newStudent 1 zhangsan newStudent 2 lisi 2 int i 2 3 Student ss newStudent 1 zhangsan newStudent 2 lisi 6 4 1数组的声明与实例化 3 对象数组的动态初始化 例如 Student jsj newStudent N for intj 0 j jsj length j jsj j newStudent j 1 王涛 7 4 1数组的声明与实例化 三 多维数组 声明 创建与初始化int arr newint 3 5 int arr2 1 2 3 4 5 6 7 8 int arr3 newint 1 2 3 4 5 6 7 8 int arr4 newint 4 arr4 0 4 5 arr4 1 1 说明 多维数组创建必须从高维度开始创建 8 4 1数组的声明与实例化 四 数组的相关操作 1 遍历一维数组intarr 6 3 2 8 9 for inti 0 i arr length i System out println arr i 9 4 1数组的声明与实例化 2 多维数组的遍历for inti 0 i arr length i for intj 0 j arr i length j System out println arr i j 10 4 1数组的声明与实例化 3 数组的拷贝 System类中arraycopy方法 System arraycopy Objectsrc intsrcPos Objectdest intdestPos intlength src 源数组srcPos 源数组开始拷贝的起始位置dest 目标数组destPos 目标数组的起始位置length 拷贝的元素个数 11 4 2Arrays的使用功能 一 类Arrays java util ArrayspublicclassArraysextendsObject此类包含用来操作数组 如排序和搜索 的各种方法 12 4 2Arrays的使用功能 二 Arrays的排序 实现排序的条件是 数组元素所属类型必须实现Comparable接口或者Comparator接口 Arrays sort 数组名 13 4 2Arrays的使用功能 三 Arrays的二分查找 Arrays binarySearch 数组名 值 从查找与指定值相同的数组元素 返回其索引位置 14 4 3Java容器框架 集合三要素 接口 实现接口的类和算法 容器也称为集合 是指一个可以容纳多个对象的对象 容器主要用来管理和维护一系列相似的对象 数组也是一种容器 一 容器 15 4 3Java容器框架 框架就是一个类库的集合 集合框架就是一个用来表示和操作集合的统一的架构 体系结构 包含了实现集合的接口与类 二 Java集合框架 JavaCollectionsFramework 16 4 3Java容器框架 三 Collection接口的类层次 包括4个接口 4个抽象类及6个具体类 17 4 3Java容器框架 说明 1 Collection 集合层次中的根接口 JDK没有提供这个接口直接的实现类 2 Set 不能包含重复的元素 3 SortedSet 是一个按照升序排列元素的Set 18 4 4List ArrayList的应用 一 List java util List接口 是一个有序的集合 可以包含重复的元素 用户可以对列表中每个元素的插入位置进行精确地控制 用户可以根据元素的整数索引 在列表中的位置 访问元素 并搜索列表中的元素 19 4 4ArrayList List的应用 二 ArrayList 1 ArrayList 底层采用数组实现 可以将其看作是能够自动增长容量的数组 2 利用ArrayList的toArray 返回一个数组 3 Arrays asList 数组名 返回一个列表 4 迭代器 Iterator 给我们提供了一种通用的方式来访问集合中的元素 20 4 5Stack Queue的应用 一 Stack类 Stack类表示后进先出 LIFO 的对象堆栈 它通过五个操作对类Vector进行了扩展 允许将向量视为堆栈 它提供了通常的push和pop操作 以及取堆栈顶点的peek方法 测试堆栈是否为空的empty方法 在堆栈中查找项并确定到堆栈顶距离的search方法 21 4 5Stack Queue的应用 二 Queue接口 队列通常 但并非一定 以FIFO 先进先出 的方式排序各个元素 无论使用哪种排序方式 队列的头都是调用remove 或poll 进行出对的 在FIFO队列中 所有的新元素都插入队列的末尾 其他种类的队列可能使用不同的元素放置规则 每个Queue实现必须指定其顺序属性 22 4 5Stack Queue的应用 三 具体的Queue类 1 类ArrayBlockingQueue一个由数组支持的有界阻塞队列 此队列按FIFO 先进先出 原则对元素进行排序 队列的头部是在队列中存在时间最长的元素 队列的尾部是在队列中存在时间最短的元素 新元素插入到队列的尾部 队列获取操作则是从队列头部开始获得元素 支持线程操作 23 4 5Stack Queue的应用 2 PriorityBlockingQueue一个无界阻塞队列 它使用与类PriorityQueue相同的顺序规则 并且提供了阻塞获取操作 虽然此队列逻辑上是无界的 但是资源被耗尽时试图执行add操作也将失败 导致OutOfMemoryError 此类不允许使用null元素 依赖自然顺序的优先级队列也不允许插入不可比较的对象 这样做会导致抛出ClassCastException 24 4 6Hashtable和HashMap的应用 一 Hashtable类 实现一个哈希表 该哈希表将键映射到相应的值 任何非null对象都可以用作键或值 为了成功地在哈希表中存储和获取对象 用作键的对象必须实现hashCode方法和equals方法 25 4 6Hashtable和HashMap的应用 响其性能的参数 初始容量和加载因子 1 容量是哈希表中桶的数量 初始容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论