




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第6章 一维数组,2,开放问题,读取一百数字,计算它们的平均值,然后找出有多少个数大于平均值。,3,解决方案,AnalyzeNumbers,Run with prepared input,4,学习目标,描述数组在程序设计中的必要性 (第6.1节)。 声明数组引用变量、创建数组 (第6.2.1-6.2.2节)。 初始化数组中的值 (第6.2.3节)。 使用下标变量访问数组元素(第6.2.4节)。 利用一条数组初始化语法声明、创建和初始化数组 (第6.2.5节)。 编写程序实现常用的数组操作(显示数组、对所有元素求和、求最大和最小元素、随意打乱、移动元素)(第6.2.6节 )。 使用for -
2、 each循环简化程序设计(第6.2.7)。 在LottoNumbers和DeckOfCards问题中应用数组 (第6.3-6.4节)。 将一个数组的内容复制到另一个数组 (第6.5节)。 开发和调用带数组参数和返回值的方法(第6.66.7节)。 定义带变长参数列表的方法(第6.8节)。 使用线性查找算法(第6 .9.1节)或二分查找算法(第6. 9.2节)查找数组的元素。 使用选择排序法对数组排序(第6.10.1节)。 使用插入排序算法使排序数组 (第6.10.2节)。 使用 Arrays 类中的方法(第6.11节)。,5,介绍数组,数组是一种数据结构,它表示一组相同类型的数据。,6,声明数
3、组变量,datatype arrayRefVar; 举例: double myList; datatype arrayRefVar; / 这种风格是允许的,但不推荐使用 举例: double myList;,7,创建数组,arrayRefVar = new datatypearraySize; 举例: myList = new double10; myList0 引用数组中的第一个元素。 myList9 引用数组中的最后一个元素。,8,一步完成声明和创建,datatype arrayRefVar = new datatypearraySize; double myList = new doub
4、le10; datatype arrayRefVar = new datatypearraySize; double myList = new double10;,9,数组的大小,一旦数组被创建就不能再修改它的大小。可以通过使用 arrayRefVar.length 来求得数组的大小。 举例: myList.length returns 10,10,默认值,当数组被创建后,它的元素被赋予默认值 数值型基本数据类型的默认值是0, char 类型的默认值为u0000 ,而 boolean 类型默认值为false。,11,下标变量,数组元素可以通过下标来访问。数组下标是基于0的,就是说它从0开始到a
5、rrayRefVar.length-1结束。在图6.1中的例子中, 数组myList 包含10个double值而下标是从0到9。 数组中的每个元素都可以使用下面一般被称为下标变量的语法表示: arrayRefVarindex;,12,使用下标变量,创建数组后,可以采用和一般变量相同的方法使用下标变量。例如:下面的代码是将myList0和myList1的值相加赋给myList2。 myList2 = myList0 + myList1;,13,数组初始化语法,一步完成数组的声明、创建、初始化: double myList = 1.9, 2.9, 3.4, 3.5; 这种缩略语法必须用在一条语句中
6、。,14,使用缩略符号声明、创建、初始化数组,double myList = 1.9, 2.9, 3.4, 3.5; 这里的缩略符号相当于以下面的语句: double myList = new double4; myList0 = 1.9; myList1 = 2.9; myList2 = 3.4; myList3 = 3.5;,15,注意,使用缩略符号时,你必须将声明、创建和初始化数组都放在一条语句中。将它们分开会引起语法错误。例如:下面的语句就是错误的: double myList; myList = 1.9, 2.9, 3.4, 3.5;,16,跟踪数组程序,public class T
7、est public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,声明数组变量value, 创建一个数组并将它的引用赋值给values,动 画,17,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valu
8、esi = i + valuesi-1; values0 = values1 + values4; ,i 变为 1,动 画,18,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,i (=1)小于5,动 画,19,跟踪数组程序,public class Test public static void main(Stri
9、ng args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,这一行被执行后,values1是1,动 画,20,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4;
10、 ,i+后,i 变为 2,动 画,21,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,i(= 2)小于5,动 画,22,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i =
11、1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,这一行被执行之后, values2 为3(2 + 1),动 画,23,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,这之后,i就 变为 3.,动 画,24,跟踪数组程序,public
12、 class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,i(=3)依旧小于5,动 画,25,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + values
13、i-1; values0 = values1 + values4; ,这一行之后,values3变成 6(3 + 3),动 画,26,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,这之后,i变成4,动 画,27,跟踪数组程序,public class Test public static void main(Str
14、ing args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,i(=4) 仍旧小于5,动 画,28,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,这之后
15、,values4变成 10(4 + 6),动 画,29,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,i+后,i 变成5,动 画,30,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (
16、int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,i ( =5) 5 为假。退出循环,动 画,31,跟踪数组程序,public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; ,这行之后,values0 为11 (1 + 10),动 画,32,处理
17、数组,下面是一些示例: (使用输入值初始化数组) (使用随机数初始化数组) (打印数组) (对所有元素求和) (找出最大元素) (找出最大元素的最小下标值) (随意打乱) (移动元素),33,使用输入值初始化数组,java.util.Scanner input = new java.util.Scanner(System.in); System.out.print(Enter + myList.length + values: ); for (int i = 0; i myList.length; i+) myListi = input.nextDouble();,34,使用随机数初始化数组,
18、for (int i = 0; i myList.length; i+) myListi = Math.random() * 100; ,35,打印数组,for (int i = 0; i myList.length; i+) System.out.print(myListi + ); ,36,对所有元素求和,double total = 0; for (int i = 0; i myList.length; i+) total += myListi; ,37,找出最大的元素,double max = myList0; for (int i = 1; i max) max = myListi; ,38,随意打乱,39,移动元素,40,增强型for循环(for - each循环),JDK 1.5引入了一个新的for循环,它可以让你不使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 比亚迪入职培训
- 企业培训课件
- 承台安全教育培训
- 竞选护理总带教
- 素质教育评价体系构建与实施路径
- 肿瘤科护患工休座谈会
- 幼儿园小班美术种子粘贴画教案
- 员工制度管理制度培训
- 部门培训方案
- 农业测量试题及答案
- 洁净室施工培训
- 新生儿糖尿病喂养指导
- 山西省太原市(2024年-2025年小学五年级语文)统编版期末考试(下学期)试卷及答案
- 住院患者跌倒、坠床、压力性损伤的风险评估及管理
- 2023风光互补路灯设计方案
- 2023年山东省夏季普通高中学业水平合格考试会考生物试题及参考答案
- 2024年山东省青岛市中考英语试卷附答案
- 材料力学(山东联盟-中国石油大学(华东))智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 江西省南昌二中心远教育集团九湾学校2023-2024学年八年级下学期期末考试物理试题
- 深入理解Nginx(模块开发与架构解析)
- MOOC 中国文化概论-华南师范大学 中国大学慕课答案
评论
0/150
提交评论