Java语言程序设计讲义第五章.docx

上传人:b****5 文档编号:6238420 上传时间:2023-01-04 格式:DOCX 页数:13 大小:38.35KB
下载 相关 举报
Java语言程序设计讲义第五章.docx_第1页
第1页 / 共13页
Java语言程序设计讲义第五章.docx_第2页
第2页 / 共13页
Java语言程序设计讲义第五章.docx_第3页
第3页 / 共13页
Java语言程序设计讲义第五章.docx_第4页
第4页 / 共13页
Java语言程序设计讲义第五章.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Java语言程序设计讲义第五章.docx

《Java语言程序设计讲义第五章.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计讲义第五章.docx(13页珍藏版)》请在冰豆网上搜索。

Java语言程序设计讲义第五章.docx

Java语言程序设计讲义第五章

第五章数组

主要内容:

一维数组和多维数组的有关概念和使用方法

5.1数组

1.数组是相同类型的元素按顺序组成的一种复合数据类型。

2.数组作为一种特殊的数据类型,具有以下特点:

●数组中的所有元素是同一类型

●数组中的元素是有顺序的

●数组中的元素通过数组名和下标来确定tempvijkperson

3.Java中,只有定义数组并建立数组后,数组才能被访问。

4.在建立数组时,Java会使每个数组元素初始化为默认值0。

5.若不希望数组的初值为默认值,则要将数组初始化。

6.Java并不支持多维数组。

对多维数组的定义是通过对一维数组的嵌套式定义来实现的。

7.在Java中,所有数组的起始下标都是0。

5.2一维数组

1.定义一维数组(声名)

格式:

typearrayName[];

说明:

●type为Java中任意的数据类型(简单类型或组合类型)

●arrayName为一个合法的标识符;[]指明是一数组类型变量。

例如:

intintArray[];

堆栈内存区堆内存区

null

intArray

intArray|

 

2.建立一维数组

格式:

arrayName=newtype[arraySize];

说明:

arraySize指明数组的长度。

例如:

intArray=newint[3];

//为一个整型数组分配3个int型整数所占据的内存空间。

intArray

intArray.length

intArray[0]

intArray[1]

intArray[2]

堆栈内存区堆内存区

3

 

通常,可以将数组的定义和建立合在一起,格式如下:

typearrayName=newtype[arraySize];

例如:

intintArray=newint[3];等价于下面的语句,

intintArray[];intArray=newint[3];

3.初始化一维数组

方法1:

在定义数组的同时对数组初始化。

例:

intintArray[]={2,4,6}//系统自动为数组元素分配内存空间

方法2:

在定义数组并建立数组后,对数组初始化。

例:

intArray[0]=2;intArray[1]=4;intArray[2]=6;

3.数组元素的引用

格式:

arrayName[index]

说明:

●index可以是整型常数或表达式。

如a[3],c[6*i](i为整型)。

●下标从0开始,一直到数组的长度减1。

●如果下标index超出了数组大小的范围,会产生ArrayIndexOutOfBoundException异常。

●与C、C++中不同,Java语言对数组元素要进行越界检查以保证安全性。

同时,对于每个数组都有一个属性length指明它的长度,例如:

intArray.length指明数组intArray的长度。

例5.1:

对数组中的每个元素赋值,然后按逆序输出。

publicclassArrayTest{

publicstaticvoidmain(Stringargs[]){

inti;

inta[]=newint[5];

for(i=0;i<5;i++)

a[i]=i;

for(i=a.length-1;i>=0;i--)

System.out.println("a["+i+"]="+a[i]);

}

}

4.数组间的复制

(1)Java语言的数组是作为对象来看待,通过引用来操作的。

(2)将数组传递到方法中时,只传递数组的引用,而不是这个数组元素。

(3)一个数组变量只是生成了一个存放数组的存储位置,而未分配数组元素占用的实际内存空间。

(4)由于数组是对象,将一个数据变量赋值给另一个数组变量时,只是复制数组的引用。

例:

intinta[]=intArray;执行完该语句后,内存空间为:

堆栈内存区堆内存区

intArray

inta

intArray.length

intArray[0]

intArray[1]

intArray[2]

3

2

4

6

 

(5)数组拷贝的另一种方法是采用java.lang.System类中的arraycopy()方法。

格式:

viodarraycopy(ObjectsourceArray,intsourceArray,

ObjectdestinationArray,

intdestinationArrayStartPosition,

intnumberOfElementsToCopied);

说明:

●从源数组的给定位置,拷贝一定长度的子串到目标数组的给定位置。

●若拷贝过程中涉及了数组边界之外的数据,则抛出异常ArrayIndexOutOfBoundsException;

●若源数组数据由于类型不匹配而无法拷贝到目标数组,则抛出异常ArrayStoreException。

●在调用arraycopy方法之前,必须先分配目标数组所用的存储空间。

例:

intintArray[]={2,4,6};inta[]={1,2,3,4,5};

System.arraycopy(intArray,0,a,0,intArray.length);

堆栈内存区堆内存区

intArray

intArray.length

intArray[0]

intArray[1]

intArray[2]

a

a.length

a[0]

a[1]

a[2]

a[3]

a[4]

3

2

4

6

|

 

5.3多维数组

与C、C++一样,Java语言中多维数组被看作数组的数组。

例如二维数组是一个特殊的一维数组,其每个元素又是一个一维数组。

1.二维数组的定义

格式:

typearrayName[][];

例:

intintArray[][];

2.分配内存空间

方法1:

直接为每一维分配空间

例:

inta[][]=newint[2][3];

方法2:

从最高维开始,分别为每一维分配空间

例:

inta[][]=newint[2][];

a[0]=newint[3];

a[1]=newint[3];

说明:

●与C、C++不同,Java在定义和建立多维数组时,不一定要指明每一维的长度。

●建立数组时,数组最前面的1维或n维必须指定元素个数,只有后面的方括号中可以不指定元素个数。

例:

inta[][][]=newint[8][][];

堆栈内存区堆内存区

a

length

a[0]

a[1]

length

a[0][0]

a[0][1]

a[0][2]

length

a[1][0]

a[1][1]

a[1][2]

2

3

|

 

3.二维数组元素的引用

格式:

arrayName[index1][index2]

其中index1、index2可为整型常数或表达式。

4.二维数组的初始化

方法1:

直接对每个元素进行赋值。

方法2:

在定义数组的同时进行初始化。

例:

inta[][]={{2,3,5},{1,3,4}};

该句定义了一个2×3的数组,并对每个元素赋值。

Java字符数组的定义和使用方法与上述内容完全一样。

例:

两个矩阵Am×n、Bn×l相乘得到Cm×l,每个元素Cij=aik*bkj

publicclassMatrixMultiply{

publicstaticvoidmain(Stringargs[]){

inti,j,k;

inta[][]=newint[2][3];

intb[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};

intc[][]=newint[2][4];

for(i=0;i<2;i++)

for(j=0;j<3;j++)

a[i][j]=(i+1)*(j+2);

for(i=0;i<2;i++){

for(j=0;j<4;j++){

c[i][j]=0;

for(k=0;k<3;k++)

c[i][j]+=a[i][k]*b[k][j];

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1