Java程序设计简明教程 p04

上传人:E**** 文档编号:89389617 上传时间:2019-05-24 格式:PPT 页数:20 大小:69KB
返回 下载 相关 举报
Java程序设计简明教程 p04_第1页
第1页 / 共20页
Java程序设计简明教程 p04_第2页
第2页 / 共20页
Java程序设计简明教程 p04_第3页
第3页 / 共20页
Java程序设计简明教程 p04_第4页
第4页 / 共20页
Java程序设计简明教程 p04_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Java程序设计简明教程 p04》由会员分享,可在线阅读,更多相关《Java程序设计简明教程 p04(20页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计,教材:Java程序设计简明教程 中国水利水电出版社,2019年5月24日星期五12时43分12秒,Java 程序设计,2,第4章 数 组 数组是一种用来存储一组相同类型数据的数据结构,可以通过整型下标访问数组中的每一个元素,它是Java的一种构造数据类型。本章主要学习数组的定义与数组的使用。 4.1 数组简介 运行程序时经常需要存储大量的数据,例如,读入100个数并计算它们的平均值,找出有多少个数大于平均值。,2019年5月24日星期五12时43分12秒,Java 程序设计,3,在使用数组时,涉及以下几个术语: (1)数组名。数组名应该符合Java语言标语识符的命名规则。 (

2、2)数组的类型。因为数组是用来存储相同类型的数据,因此数组的类型就是其所存储的元素的数据类型。 (3)数组的长度。数组的长度是指数组中可以容纳的元素的个数,而不是数组所占用的字节数。,2019年5月24日星期五12时43分12秒,Java 程序设计,4,4.2 一维数组 在使用数组之前先要声明数组,元素在数组中的相对位置由下标来指明。一位数组的特点是数组元素只有一个下标。 4.2.1 声明数组变量 要在程序中使用数组,首先需要声明引用数组的变量,并指明变量可引用的数组类型。下面是声明数组的语法: dataType arrayRefVar; (数据类型 数组名;),2019年5月24日星期五12

3、时43分12秒,Java 程序设计,5,4.2.2 创建数组 不同于以前基本数据类型变量的说明,说明一个数组变量时并不在内存中给数组分配任何空间,仅仅创建了一个引用数组的存储地址。如果变量没指向任何数组,则变量的值为null。除非数组已经创建,否则不能给它分配任何元素。 数组名=new 数据类型数组大小;,2019年5月24日星期五12时43分12秒,Java 程序设计,6,4.2.3 数组的大小和默认值 给数组分配空间时,必须通过指定存储元素的个数来约定数组的大小。数组创建之后就不能再修改它的大小。可以使用myList.length方法求得数组myList的大小,比如myList.lengt

4、h为10。 数组创建后,它的元素赋予默认值,数值型基本数据类型默认值为0,char型为u0000,boolean型为false。,2019年5月24日星期五12时43分12秒,Java 程序设计,7,4.2.4 数组下标变量 数组的元素通过下标来访问。数组下标是基于0的(0-based),它们从0开始到arrayobject.length-1结束。 在Java中,数组的下标必须是整数或整数表达式。,2019年5月24日星期五12时43分12秒,Java 程序设计,8,4.2.5 数组初始化 Java有一个简洁的记法,叫做数组初始化(array initializer);可以将声明数组、创建数组

5、和初始化数组结合到一个语句中,其语法如下: 数据类型 数组变量=直接量0,直接量1,直接量k;,2019年5月24日星期五12时43分12秒,Java 程序设计,9,处理数组元素时,会经常使用for循环,这是因为: l 所有的数组元素都是同一类型的,它们可以使用for循环以同样的方式一起处理。 由于数组的大小已知,使用for循环比较合理。,2019年5月24日星期五12时43分12秒,Java 程序设计,10,4.2.6 把数组传递给方法 把数组传递给一个方法,应使用不加方括号的数组名。这里指的是整个数组而不是数组中的单个元素。例如,如果数组hourlyTemperatures已声明如下: i

6、nt hourlyTemperatures =new int24; 那么方法调用 modifyArray(hourlyTemperatures); 就把数组hourlyTemperatures传递给方法modifyArray。,2019年5月24日星期五12时43分12秒,Java 程序设计,11,4.2.7 一维数组的排序 排序,是使数据按某种顺序进行排列,如递增顺序(升序)或递减顺序(降序)等。这是计算机数据处理中应用最多的一项操作。,2019年5月24日星期五12时43分12秒,Java 程序设计,12,public class ch0403 public static void mai

7、n(String args) int i=0,j=0; int intArray =35,22,51,10,60; int len=intArray.length; for(i=1;iintArrayj+1); int t=intArrayj; intArrayj=intArrayj+1; intArrayj+1=t; System.out.println(“排序后的结果为:“); for(i=0;ilen;i+) System.out.print(intArrayi+“ “); ,2019年5月24日星期五12时43分12秒,Java 程序设计,13,4.2 多维数组 4.2.1 声明多维数

8、组变量和创建多维数组 下面是声明二维数组的语法: 数据类型 数组引用变量; 或 数据类型 型组引用变量 ; /这种方式是正确的,但不推荐 matrix=new int55; matrix21=7;,2019年5月24日星期五12时43分12秒,Java 程序设计,14,4.2.2 求多维数组的长度 多维数组实际上是每个元素为数组的数组。二维数组是以数组为元素构成的数组,它的每个元素是一个一维数组。三维数组是二维数组构成的数组,该二维数组又是一维数组的数组。数组x的长度是指数组中元素的个数。可以用xlength求得。元素x0,x1,xx.length-1也是数组,它们的长度可以利用x0.leng

9、th,x1.length,xx.length-1.length求得。,2019年5月24日星期五12时43分12秒,Java 程序设计,15,public class ch0404 public static void main(String args) / 学生的答案 char answers= A,B,A,C,C,D,E,E,A,D, D,B,A,B,C,A,E,E,A,D, E,D,D,A,C,B,E,E,A,D, C,B,A,E,D,C,E,E,A,D, A,B,D,C,C,D,E,E,A,D, B,B,E,C,C,D,E,E,A,D, B,B,A,C,C,D,E,E,A,D, E,B

10、,E,C,C,D,E,E,A,D; / 问题的正确答案 char keys =D,B,D,C,C,D,A,E,A,D; for(int i=0;ianswers.length;i+) int correctCount=0; for(int j=0;janswersi.length;j+) if(answersij=keysj) correctCount+; System.out.println(“Student “+i+“s correct count is “+correctCount); ,2019年5月24日星期五12时43分12秒,Java 程序设计,16,4.3 数组的查找 查找(s

11、earching)是在数组中寻找特定元素的过程,例如,判断成绩列表中是否包含某一特定的分数。像排序一样,查找是计算机程序设计中常见的工作。有很多算法和数据结构用于查找。在本节中,将讨论两种常见的算法,线性查找(linear searching)和二分查找(binary searching)。,2019年5月24日星期五12时43分12秒,Java 程序设计,17,4.3.1 线性查找法 线性查找法是将要查找的关键字key与数组list 中的元素逐个进行比较,直到在列表中找到与关键字匹配的元素,或者查完列表也没有找到。如果匹配成功,线性查找法返回与关键字匹配的元素在数组中的下标,如果没有找到,则

12、返回-1。,2019年5月24日星期五12时43分12秒,Java 程序设计,18,4.3.2 二分查找法 二分查找法是另一种常见的查找法。使用二分查找法的前提条件是数组元素必须已经排序。不失一般性,假设数组按升序排列。二分查找法首先将关键字与数组的中间元素比较,考虑下面三种情况: l 如果关键字比中间元素小,那么只需在前一半数组元素中查找。 l 如果关键字和中间元素相等,则匹配成功,查找结束。 如果关键字比中间元素大,则只需在后一半数组元素中查找,2019年5月24日星期五12时43分12秒,Java 程序设计,19,public class BinarySearch public stat

13、ic int binarySearch(int list,int key) int low=0; int high=list.length-1; while (high=low) int mid = (low+high)/2; if (key listmid) high=mid-1; else if (key=listmid) return mid; else low=mid +1; return low +1; ,2019年5月24日星期五12时43分12秒,Java 程序设计,20,线性查找法适用于在小数组或没有排序的数组中查找,但是对大数组效率不高。二分查找法的效率较高,但要求数组已经排好序。,

展开阅读全文
相关资源
相关搜索

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

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