资源预览内容
第1页 / 共95页
第2页 / 共95页
第3页 / 共95页
第4页 / 共95页
第5页 / 共95页
第6页 / 共95页
第7页 / 共95页
第8页 / 共95页
第9页 / 共95页
第10页 / 共95页
亲,该文档总共95页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数 组数 组1 一维数组2 一维数组引用举例3 二维数组4 二维数组的引用数 组一 维 数 组一维数组的声明 数组在其他语言是相同数据类型的元素的集合;而 Java中,数组是独立的对象,有自身的方法,不是变 量的集合 数组的声明:类型标识符 数组名 ;或 类型标识符 数组名; int intArray ; ( 不是指长度可变) int intArray; int abc ; double example2; 数组的长度不是在声明时指定,而是在创建时由所 开辟的内存单元数目确定数 组 数组的创建(3步) 数组的声明 创建数组空间 当数组元素为对象时,使用之前必须对数组元素进 行创建和初始化。 创建方法: 先声明后创建 int intArray ; intArray = new int 10 ; 在声明的同时创建 int intArray = new int 10 ; 直接赋值 int intArray = 1, 2, 3, 4, 5 ;数 组1.1 一维数组的初始化声明数组仅为数组指定数组名和数组元素的类型,并没有为元素分配实际的存储空间。因为Java的数组声明中并未指出数组元素的个数,在Java中指明元素个数放在初始化进行。初始化后,其长度(即可存放的元素个数)就不可再改变。Java数组的初始化可以通过直接指定初值的方式来完成,也可以用new操作符来完成。数 组a直接指定初值的方式在声明一个数组的同时将数组元素的初值依次写入赋值号后的一对花括号内,给这个数组的所有数组元素赋上初始值。这样,Java编译器可通过初值的个数确定数组元素的个数,为它分配足够的存储空间并将这些值写入相应的存储单元。例如:int a1=23,-9,38,8,65;Java中的数组下标从0开始。数 组图 1 数组a1的初始化数组元素a10a11a12a13a14初始值23938865数 组b用关键字new初始化数组只为数组分配存储空间而不对数组元素赋初值。用关键字new来初始化数组有两种方式:(1) 先声明数组,再初始化数组。格式如下:类型标识符 数组名 ;数组名=new 类型标识符数组长度;第一条语句是数组的声明,第二条语句是初始化。两条语句中的数组名、类型标识符必须一致。数组长度通常是整型常量,用以指明数组元素的个数。数 组图 2 用new关键字对数组a初始化int a ;a=new int9;a5a6a7a8数组元素a0a1a2a3a4数 组(2) 在声明数组的同时用new关键字初始化数组。类型标识符 数组名 =new 类型标识符数组长度;或类型标识符 数组名=new 类型标识符数组长度;例如:int a=new int10;数 组1.2一维数组的引用一维数组元素的引用格式如下:数组名数组下标数组下标的取值范围是0(数组长度-1),下标值可以是整数型常量或整数型变量表达式。例如,在有了“int a=new int10;”声明语句后,下面的两条赋值语句是合法的:a3=25; a3+6=90;a10=8;是错误的。数 组2 一维数组引用举例2.1 测定数组的长度在Java语言中,数组也是一种对象。数组经初始化后就确定了它的长度,对于每个已分配了存储空间的数组,Java用一个数据成员length来存储这个数组的长度值。【示例程序c6_1.java】 数组的声明、初始化和其长度的测定。public class c6_1 public static void main(String arg )数 组int i;double a1 ;/ 放在变量后面声明char a2; / 放在变量前面声明a1=new double8;/为a1分配8个double型元素的存储空间(64字节)a2=new char8; /为a2分配8个char型元素的存储空间(16字节)int a3 =new int8;/在声明数组时初始化数组, 为a3分配32字节byte a4=new byte8; /在声明数组时初始化数组,为a4分配8字节char a5 =A,B,C,D,E,F,H,I;/直接指定初值方式/下面各句测定各数组的长度数 组System.out.println(“a1.length=“+a1.length);System.out.println(“a2.length=“+a2.length);System.out.println(“a3.length=“+a3.length);System.out.println(“a4.length=“+a4.length);System.out.println(“a5.length=“+a5.length);/以下各句引用数组中的每一个元素,为各元素赋值for(i=0;ihigh) mid=-1;return mid;/ mid是数组元素下标,若为-1则表示不存在要查的元素 public class c6_3public static void main(String args)throws IOException数 组 BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in);int i,k,search,mid;String c1;int arr =2,4,7,18,25,34,56,68,89;System.out.println(“打印原始数据“);for(i=0;ii;k-)if( arrki) t=arr1i; /在外循环实施交换,可减少交换次数arr1i=arr1k;arr1k=t;/ if(ki)结束/外循环for(i)结束/成员方法sort定义毕public class c6_9 extends SelectSort public static void main(String args) 数 组int arr =78,70,2,5,-98,7,10,-1;int len=arr.length;SelectSort.sort(arr);/数组名作为成员方法的实参System.out.print(“选择法排序的结果:“);System.out.println(“length=“+arr.length);for(int i=0;imax) max=arr1ik;return max;public class c6_12数 组public static void main(String args) int maxx;int arr =1,3,7,6,78,0,42,5,-98,7,10,-1;Maxvalue p1=new Maxvalue( );maxx=p1.maxvl(arr);System.out.println(“max=“+maxx); 运行结果:max=78数 组【示例程序c6_13.java】 两个矩阵相加。class AddClass void add(int arA ,int arB ,int arC ) int i,k,len1;int len=arA.length;for(i=0;ilen;i+) len1=arAi.length;for(k=0;klen1;k+)arCik=arAik+arBik;数 组public class c6_13public static void main(String args) int i,k;int arA =1,3,7,6,78,0,42,5,-98,7,10,-1;int arB =1,3,7,6,78,0,42,5,-98,7,10,-1;int arC =new int34;int len=arA.length,len1;AddClass p1=new AddClass( );p1.add(arA,arB,arC);System.out.println(“tAttBttC“);for(i=0;ilen;i+)数 组 len1=arAi.length;for(k=0;klen1;k+)System.out.print(“ “+arAik);/打印第i行A矩阵System.out.print(“t“);for(k=0;klen1;k+)System.out.print(“ “+arBik);/打印第i行B矩阵System.out.print(“t“);for(k=0;klen1;k+)System.out.print(“ “+arCik);/打印第i行C矩阵System.out.println(“n“); 数 组运行结果:A B C1 3 7 6 1 3 7 6 2 6 14 1278 0 42 5 78 0 42 5 156 0 84 10-98 7 10 -1 -98 7 10 -1 -196 14 20 -2
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号