版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程名:Web程序设计课程号:020213005课程网址:http://授课教师:马志强教师邮箱:mzq_bim@163.com2011-2012学年第二学期内蒙古工业大学校级精品建设课程Web程序设计课程组制作第四章数组与容器1Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程目录4.1数组的声明与实例化4.2Arrays的使用功能4.3Java容器框架4.4ArrayList、List的应用4.5Stack、Queue的应用4.6Hashtable和HashMap的应用2Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.1数组的声明与实例化一、数组的概念一组相同类型数据的有序集合,是一种数据结构,数组中数据成为元素。
分为:基本类型数组和类类型数组。在Java提供的存储及随机访问对象序列的各种方法中,数组是效率最高的一种。使用步骤:声明、创建、初始化和应用3Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.1数组的声明与实例化二、数组的声明1、数组的声明说明:声明数组时不能指明数组元素的个数;声明一个数组并没有创建一个对象,此时并不能使用数组。类型[]变量名/对象名;类型
变量名[]/对象名[];例如:int[]i或inti[]Student[]ss或Studentss[]4Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.1数组的声明与实例化2、创建数组对象名/变量名=new
类型[长度];说明:1)创建数组使用关键字new,创建时须指定类型和数组元素个数;2)创建基本数据类型数组:int[]i=newint[2];3)创建引用数据类型数组:Student[]ss=newStudent[100]或ss=newStudent的子类[100];5Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程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”)};6Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.1数组的声明与实例化3)对象数组的动态初始化例如:Student[]jsj=newStudent[N];
for(intj=0;j<jsj.length;j++)jsj[j]=newStudent(j+1,”王涛”);7Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程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};说明:多维数组创建必须从高维度开始创建。8Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.1数组的声明与实例化四、数组的相关操作1、遍历一维数组
intarr[]={6,3,2,8,9}; for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}9Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.1数组的声明与实例化2、多维数组的遍历
for(inti=0;i<arr.length;i++){ for(intj=0;j<arr[i].length;j++){ System.out.println(arr[i][j]); } }10Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.1数组的声明与实例化3、数组的拷贝(System类中arraycopy方法)
System.arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)src:源数组srcPos:源数组开始拷贝的起始位置dest:目标数组destPos:目标数组的起始位置length:拷贝的元素个数11Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.2Arrays的使用功能一、类Arraysjava.util.ArrayspublicclassArrays
extendsObject此类包含用来操作数组(如排序和搜索)的各种方法。12Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.2Arrays的使用功能二、Arrays的排序
实现排序的条件是:数组元素所属类型必须实现Comparable接口或者Comparator接口;Arrays.sort(数组名);13Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.2Arrays的使用功能三、Arrays的二分查找
Arrays.binarySearch(数组名,值)从查找与指定值相同的数组元素,返回其索引位置。14Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.3Java容器框架集合三要素:接口,实现接口的类和算法。容器也称为集合,是指一个可以容纳多个对象的对象,容器主要用来管理和维护一系列相似的对象;数组也是一种容器。一、容器15Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.3Java容器框架框架就是一个类库的集合。集合框架就是一个用来表示和操作集合的统一的架构(体系结构),包含了实现集合的接口与类。二、Java集合框架(JavaCollectionsFramework)16Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.3Java容器框架三、Collection接口的类层次CollectionAbstractCollectionVectorArrayListStackListSetSortedSetAbstractSetAbstractListAbstractSequentialListHashSetTreeSetLinkedList包括4个接口、4个抽象类及6个具体类17Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.3Java容器框架说明:1)Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类;2)Set:不能包含重复的元素。3)SortedSet:是一个按照升序排列元素的Set;18Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.4List、ArrayList的应用一、List(java.util.List接口)是一个有序的集合,可以包含重复的元素。用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。19Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.4ArrayList、List的应用二、ArrayList(1)ArrayList:底层采用数组实现,可以将其看作是能够自动增长容量的数组;(2)利用ArrayList的toArray()返回一个数组;(3)Arrays.asList(数组名)返回一个列表;(4)迭代器(Iterator)给我们提供了一种通用的方式来访问集合中的元素。20Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.5Stack、Queue的应用一、Stack类Stack
类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类Vector
进行了扩展,允许将向量视为堆栈。它提供了通常的push
和pop
操作,以及取堆栈顶点的peek
方法、测试堆栈是否为空的empty
方法、在堆栈中查找项并确定到堆栈顶距离的search
方法。21Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.5Stack、Queue的应用
二、Queue接口队列通常(但并非一定)以FIFO(先进先出)的方式排序各个元素。无论使用哪种排序方式,队列的头
都是调用remove()或poll()
进行出对的。在FIFO队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个Queue实现必须指定其顺序属性。22Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.5Stack、Queue的应用三、具体的Queue类1、类ArrayBlockingQueue<E>一个由数组支持的有界阻塞队列。此队列按FIFO(先进先出)原则对元素进行排序。队列的头部是在队列中存在时间最长的元素。队列的尾部是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素。支持线程操作。23Web程序设计(WebProgramming)授课:马志强(E-mail:mzq_bim@163.com)内蒙古工业大学校级精品建设课程4.5Stack、Queue的应用2、PriorityBlockingQueue<E>一个无界阻塞队列,它使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年自贡自流井区社区工作者笔试真题(附答案)
- 年度结算付款确认函(5篇)
- 区域市场推广活动预算调整最终确认复函4篇
- 2026年初中化学结业考试试卷
- 2026年初中化学计算能力测试试卷
- 工业产品设计师产品创新与市场适应性能力绩效评定表
- 成都市青白江区实验小学北区分校招聘教师考试真题2025
- 旅游节推广费用预算调整申请函5篇范文
- 技术培训函培训课程大纲3篇
- 江苏南通再就业工程开发有限公司招聘考试真题2025
- 【全科医学概论5版】第04章 以家庭为单位的健康照顾
- 2025年小众香水细分市场发展报告
- 国家基层高血压防治管理指南(2025年)解读课件
- 药店监督检查课件
- 2025年贵州初、中级专业技术资格考试(岩土工程)历年参考题库含答案详解(5卷)
- 胸痛中心建设与运行情况汇报
- 建行授权管理办法
- 晚期肿瘤病人护理
- 中医操作安全管理制度
- 退休医生劳务合同协议
- 设备移机合同协议
评论
0/150
提交评论