第5讲(1) 数组课件_第1页
第5讲(1) 数组课件_第2页
第5讲(1) 数组课件_第3页
第5讲(1) 数组课件_第4页
第5讲(1) 数组课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、1JAVA语言程序设计周敏彤2关于上机n文件名一致性n类名: class ABC n文件名: ABC.javan编译后: ABC.class (java编译器产生)njavac ABCnjavac ABC.classnjava ABC.class3第四讲 程序的流程控制n标准输出和输入n命令行参数n数学计算方法n条件选择语句nswitch语句n循环控制语句n跳转语句4第五讲 数组n概念n一维数组n多维数组n数组的界限5概念n数组是一组同类型的变量或对象的集合n数组的类型可以是基本类型,或类和接口n数组中每个元素的类型相同n引用数组元素通过数组名下标n数组下标(数组的索引)从0开始的正整数n数组

2、是一种特殊的对象(Object)n定义类型 (声明)n创建数组 (分配内存空间) : newn释放 (Java虚拟机完成)n一维数组、多维数组6第五讲 数组n概念n一维数组n多维数组n数组的界限7一维数组n一维数组的元素只有一个下标变量n例: A1, c3n一维数组的声明n方法1: 类型 数组名; nString args; int a; double amount; char c;n方法2: 类型 数组名;nString args; int a; double amount; char c;n注意n类型是数组中元素的数据类型(基本和构造类型)n数组名是一个标识符n数组声明后不能被访问,因未为

3、数组元素分配内存空间8一维数组variable d might not have been initializedSystem.out.println(d0); 1 errordouble d;System.out.println(d0);9一维数组n数组的创建n用new来创建数组n为数组元素分配内存空间,并对数组元素进行初始化n格式: 数组名 = new 类型数组长度n例: a = new int3;n声明和创建的联用: int a = new int3;n默认赋初值n整型初值为0 int i = new int3;n实型初值为0.0 float f = new float3;n布尔型初值为

4、false boolean b = new boolean3;n字符型初值为u0000(不可见) char c = new char3;10一维数组class Test public static void main(String args) int i = new int3;float f = new float3;boolean b = new boolean3;char c = new char3;for (int j = 0; j i.length; j+)System.out.println(ij);for (int j = 0; j f.length; j+)System.out.

5、println(fj);for (int j = 0; j b.length; j+)System.out.println(bj);for (int j = 0; j java Test0000.00.00.0falsefalsefalseC:11一维数组n一维数组的初始化n为数组元素指定初始值n方式一: 声明和创建数组后对数组初始化class Test public static void main(String args) int a = new int5;System.out.println(“t输出一维数组a: ”);for (int i = 0; i java Test输出一维数组a

6、: a0=1 a1=2 a2=3 a3=4 a4=5C:12一维数组n一维数组的初始化n方式二: 在声明数组的同时对数组初始化n格式: 类型 数组名 = 元素1, 元素2 ;nint a = 1, 2, 3, 4, 5;class Test public static void main(String args) int a = 1,2,3,4,5;System.out.println(“t输出一维数组a: ”);for (int i = 0; i 5; i+) System.out.println(“ta”+i+“=”+ai);13一维数组n数组的赋值n数组的整体赋值n用java.lang.

7、System类的方法进行数组复制14一维数组n数组整体赋值class Test public static void main(String args) int a = 2, 4, 6, 8;int b; int c = 1, 3, 5, 7;b = a; c = a;for (int j = 0; j a.length; j+)System.out.print(aj + “ “);System.out.println();for (int j = 0; j b.length; j+)System.out.print(bj + “ “) ;System.out.println();for (i

8、nt j = 0; j java Test2 4 6 82 4 6 82 4 6 8C:int a = 2, 4, 6, 8, 0; int b; int c = 1, 3, 5, 7;int a = 2, 4, 6, 8; int b; int c = 1, 3, 5, 7, 9;15一维数组n数组的复用(reuse)public class Test public static void main(String args) int array = 32, 87, 3, 589, 12, 1076, 2000 ; for (int i = 0; i array.length; i+) Sys

9、tem.out.print(arrayi + ); array = new int4; for (int i = 0; i array.length; i+) arrayi = i + 1; System.out.println(); for (int i = 0; i array.length; i+) System.out.print(arrayi + ); 32 87 3 589 12 1076 20001 2 3 416一维数组n一维数组的数组复制njava.lang.System类的方法npublic static void arraycopy(Object src, int src

10、Index, Object dest, int destIndex, int length)srcdest17一维数组class Test public static void main(String args) int a = 2, 4, 6, 8;int b;int c = 1, 3, 5, 7, 9;b = a;System.arraycopy(a, 1, c, 0, 3);System.out.print(“数组a: ”);for (int i = 0; i a.length; i+) System.out.print(ai + “ ”);System.out.println();Sy

11、stem.out.print(“数组b: ”);for (int i = 0; i b.length; i+) System.out.print(bi + “ ”);System.out.println();n一维数组的数组复制 System.out.print(“数组c: ”); for (int i = 0; i = 0; ) for (int j = 0; j arrayj+1) int temp = arrayj; arrayj = arrayj+1; arrayj+1 = temp; for (int i = 0; i array.length; i+) System.out.pri

12、nt(arrayi + ); 19一维数组n小结n类型相同、数量确定的存储结构n用下标访问数组中任一个元素,数组名下标n声明、创建(new)、初始化/赋值20一维数组int d;System.out.println(d0);System.out.println(d.length);variable d might not have been initializedSystem.out.println(d0); System.out.println(d.length); 21第五讲 数组n概念n一维数组n多维数组n数组的界限22多维数组n数组的数组nArrays of Arraysn例: 表格(

13、行和列)n以二维数组为例期中考试 期末考试姓 名总 分6870学生A698085学生B847590学生C8623多维数组n二维数组的声明n类型 数组名, 例 int a;n数组声明后不能被访问,因未为数组元素分配内存空间n二维数组的创建n方法一: 直接分配空间(new)例 int a = new int23; a00 a01 a02 a10 a11 a12两个一维数组,每个数组包含3个元素24多维数组n二维数组的创建n方法二: 从最高维开始,为每一维分配空间例 int c = new int2; c0 = new int4; c1 = new int3; c00 c01 c02 c03 c10

14、 c11 c12 n注: 为数组分配空间需指定维数大小,至少最高维(最左边)大小n错误: int b = new int;25多维数组n二维数组的初始化n对每个元素单独进行赋值n声明数组的同时初始化n对数组元素的引用n数组名下标1 下标2n下标为非负的整型常数26多维数组n二维数组的初始化n每个元素单独进行赋值class Test public static void main (String args) int a = new int33;a00=1;a11=1;a22=1;System.out.println(“数组a: ”);for (int i=0; i a.length; i+)fo

15、r (int j=0; jai.length; j+)System.out.print(aij+“ ”);System.out.println();最高维数组长度 1 0 00 1 00 0 127多维数组n二维数组的初始化n声明数组的同时初始化 例 int a = 1,2,3, 3,4,5; a00=1 a01=2 a02=3 a10=3 a11=4 a12=5 例 String cartoons = Flint,Fred,Wim,Pebbles,Dino, Rub,Barn,Bet, Bam, Jet,Geo,Jane,Elroy,Judy,Rosie, Astro, Sco,Sco, S

16、hag, Velma, Fred, Dap ;int i = cartoons.length28多维数组n杨辉三角形1 1 11 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1n三角形腰上的数为1n其他位置的数为其上一行相邻两个数之和29多维数组n杨辉三角形n用二维数组描述杨辉三角形a11a21 a22a31 a32 a33a41 a42 a43 a44a51 a52 a53 a54 a55n第1列元素为1n对角线上的元素为1n其他元素aij=ai-1j-1+ai-1j纵轴为i, 横轴为j11 11 2 11 3 3 11 4 6 4 1 1 5 10 10 5 1 3

17、0多维数组n杨辉三角形class Test public static void main(String args) int n=6, indent, i, j;int a = new intnn;a11=1;for (i=2; in; i+) ai1=1;aii=1;for(j=1; ji; j+)aij=ai-1j-1+ai-1j;纵轴为i, 横轴为j0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 纵轴为i, 横轴为j0 0 0 0 0 00 1 0 0 0 00 1 1 0 0 00 1 2 1 0

18、00 1 3 3 1 0 0 1 4 6 4 1 31多维数组n杨辉三角形indent=4; for (i=1; in; i+) for(int k=1; k=indent; k+)System.out.print(“ ”);for(j=1; jjavac Test.javaTest.java:4: variable a might not have been initialized System.out.println(a.length); 1 error33多维数组n例2class Test public static void main(String args) int a = new int;System.out.println(a.length);C:javac Test.javaTes

温馨提示

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

评论

0/150

提交评论