📄 第五章 数组0.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.sdjtu.edu.cn/xdjyzx/tech/java9.htm -->
<HTML><HEAD><TITLE>基础教程</TITLE>
<META http-equiv=Content-Language content=zh-cn>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="web designer" name=keywords>
<META content=阿捷,ajie@tspace.net name=Author><LINK href="第五章 数组0.files/css.css"
type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY background=第五章 数组0.files/bg1.jpg>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="13%"></TD>
<TD vAlign=bottom width="66%">
<P align=right><A
href="http://www.sdjtu.edu.cn/xdjyzx/tech/java.htm">返回索引</A> </P></TD>
<TD width="21%">
<P align=center><FONT face="Arial Black" color=#008000 size=5>JAVA</FONT>
</P></TD></TR></TBODY></TABLE>
<HR width="80%" color=#88b838 SIZE=1>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="13%"></TD>
<TD width="77%" bgColor=#ffffff>
<P align=center><B>第五章 数组</B></P>
<P><BR>数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素。<BR><BR><FONT face=Arial
color=#008000>§5.1</FONT><FONT color=#008000>一维数组</FONT><BR><BR><FONT
color=#008000>一、一维数组的定义</FONT><BR><BR><FONT face=Arial>type
arrayName[];<BR><BR></FONT>其中类型<FONT face=Arial>(type)</FONT>可以为<FONT
face=Arial>Java</FONT>中任意的数据类型,包括简单类型组合类型,数组名<FONT
face=Arial>arrayName</FONT>为一个合法的标识符,<FONT
face=Arial>[]</FONT>指明该变量是一个数组类型变量。例如:<BR><BR><FONT face=Arial>int
intArray[];<BR><BR></FONT>声明了一个整型数组,数组中的每个元素为整型数据。与<FONT
face=Arial>C</FONT>、<FONT face=Arial>C++</FONT>不同,<FONT
face=Arial>Java</FONT>在数组的定义中并不为数组元素分配内存,因此<FONT
face=Arial>[]</FONT>中不用指出数组中元素个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。我们必须为它分配内存空间,这时要用到运算符<FONT
face=Arial>new</FONT>,其格式如下:<BR><BR><FONT face=Arial>arrayName=new
type[arraySize];<BR><BR></FONT>其中,<FONT
face=Arial>arraySize</FONT>指明数组的长度。如:<BR><BR><FONT face=Arial>intArray=new
int[3];<BR><BR></FONT>为一个整型数组分配<FONT face=Arial>3</FONT>个<FONT
face=Arial>int</FONT>型整数所占据的内存空间。<BR><BR>通常,这两部分可以合在一起,格式如下:<BR><BR><FONT
face=Arial>type arrayName=new
type[arraySize]; <BR><BR></FONT>例如:<BR><BR><FONT face=Arial>int
intArray=new int[3];<BR><BR></FONT><FONT
color=#008000>二、一维数组元素的引用</FONT><BR><BR>定义了一个数组,并用运算符<FONT
face=Arial>new</FONT>为它分配了内存空间后,就可以引用数组中的每一个元素了。数组元素的引用方式为:<BR><BR><FONT
face=Arial>arrayName[index]<BR><BR></FONT>其中:<FONT
face=Arial>index</FONT>为数组下标,它可以为整型常数或表达式。如<FONT
face=Arial>a[3]</FONT>,<FONT face=Arial>b[i](i</FONT>为整型<FONT
face=Arial>)</FONT>,<FONT face=Arial>c[6*I]</FONT>等。下标 从<FONT
face=Arial>0</FONT>开始,一直到数组的长度减<FONT face=Arial>1</FONT>。对于上面例子中的<FONT
face=Arial>in-tArray</FONT>数来说,它有<FONT face=Arial>3</FONT>个元素,分别为:<FONT
face=Arial> <BR><BR>intArray[0]</FONT>,<FONT
face=Arial>intArray[1]</FONT>,<FONT
face=Arial>intArray[2]</FONT>。注意:没有<FONT
face=Arial>intArray[3]</FONT>。<BR><BR>另外,与<FONT face=Arial>C</FONT>、<FONT
face=Arial>C++</FONT>中不同,<FONT
face=Arial>Java</FONT>对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性<FONT
face=Arial>length</FONT>指明它的长度,例如:<FONT
face=Arial>intArray.length</FONT>指明数组<FONT
face=Arial>intArray</FONT>的长度。<BR><BR>例<FONT face=Arial>5.1<BR><BR>public
class ArrayTest{<BR>public static void main(String args[]){<BR>int
i;<BR>int a[]=newint[5];<BR>for(i=0;i</FONT><<FONT
face=Arial>5;i++)<BR>a[i]=i;<BR>for(i=a.length-1;i</FONT>><FONT
face=Arial>=0;i--)<BR>System.out.println("a["+i+"]="+a[i]);<BR>}<BR>}<BR><BR></FONT>运行结果如下:<BR><BR><FONT
face=Arial>C:\</FONT>><FONT face=Arial>java
ArrayTest<BR><BR>a[4]=4<BR>a[3]=3<BR>a[2]=2<BR>a[1]=1<BR>a[0]=0<BR><BR></FONT>该程序对数组中的每个元素赋值,然后按逆序输出。<BR><BR><FONT
color=#008000>三、一维数组的初始化<BR></FONT><BR>对数组元素可以按照上述的例子进行赋值。也可以在定义数组的同时进行初始化。<BR><BR>例如:<BR><BR><FONT
face=Arial>int a[]={1</FONT>,<FONT face=Arial>2</FONT>,<FONT
face=Arial>3</FONT>,<FONT face=Arial>4</FONT>,<FONT
face=Arial>5};<BR><BR></FONT>用逗号<FONT face=Arial>(</FONT>,<FONT
face=Arial>)</FONT>分隔数组的各个元素,系统自动为数组分配一定空间。<BR><BR>与<FONT
face=Arial>C</FONT>中不同,这时<FONT face=Arial>Java</FONT>不要求数组为静态<FONT
face=Arial>(static)</FONT>。<BR><BR><FONT
color=#008000>四、一维数组程序举例:<BR></FONT><BR>例<FONT
face=Arial>5.2Fibonacci</FONT>数列<BR><BR><FONT
face=Arial>Fibonacci</FONT>数列的定义为:<BR><BR><FONT
face=Arial>F1=F2=1</FONT>,<FONT face=Arial>Fn=Fn-1+Fn-2(n</FONT>><FONT
face=Arial>=3)<BR><BR>public classFibonacci{<BR>public static void
main(String args[]){<BR>int i;<BR>int f[]=new
int[10];<BR>f[0]=f[1]=1;<BR>for(i=2;i</FONT><<FONT
face=Arial>10;i++)<BR>f[i]=f[i-1]+f[i-2];<BR>for(i=1;i</FONT><<FONT
face=Arial>=10;i++)<BR>System.out.println("F["+i+"]="+f[i-1]);<BR>}<BR>}<BR><BR></FONT>运行结果为:<BR><BR><FONT
face=Arial>C:\</FONT>><FONT face=Arial>java
Fibonacci<BR><BR>F[1]=1<BR>F[2]=1<BR>F[3]=2<BR>F[4]=3<BR>F[5]=5<BR>F[6]=8<BR>F[7]=13<BR>F[8]=21<BR>F[9]=34<BR>F[10]=55<BR><BR></FONT>例<FONT
face=Arial>5.3</FONT>冒泡法排序<FONT face=Arial>(</FONT>从小到大<FONT
face=Arial>)<BR><BR></FONT>冒泡法排序对相邻的两个元素进行比较,并把小的元素交到前面。<BR><BR><FONT
face=Arial>public class BubbleSort{<BR>public static void main(String
args[]){<BR>int i</FONT>,<FONT face=Arial>j;<BR>int
intArray[]={30</FONT>,<FONT face=Arial>1</FONT>,<FONT
face=Arial>-9</FONT>,<FONT face=Arial>70</FONT>,<FONT
face=Arial>25};<BR>int l=intArray.length;<BR>for(i=0;i</FONT><<FONT
face=Arial>l-1;i++)<BR>for(j=i+1;j</FONT><<FONT
face=Arial>l;j++)<BR>if(intArray[i]</FONT>><FONT
face=Arial>intArray[j]){<BR>int
t=intArray[i];<BR>intArray[i]=intArray[j];<BR>intArray[j]=t;<BR>}<BR>for(i=0;i</FONT><<FONT
face=Arial>l;i++)<BR>System.out.println(intArray[i]+"");<BR>}<BR>}<BR><BR></FONT>运行结果为:<BR><BR><FONT
face=Arial>C:\</FONT>><FONT face=Arial>java
BubbleSort<BR>-9<BR>1<BR>25<BR>30<BR>70<BR><BR><FONT
color=#008000>§5.2</FONT></FONT><FONT
color=#008000>多维数组<BR></FONT><BR>与<FONT face=Arial>C</FONT>、<FONT
face=Arial>C++</FONT>一样,<FONT
face=Arial>Java</FONT>中多维数组被看作数组的数组。例如二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。下面我们主要以二维数为例来进行说明,高维的情况是类似的。<BR><BR><FONT
color=#008000>一、二维数组的定义<BR></FONT><BR>二维数组的定义方式为:<BR><BR><FONT
face=Arial>type arrayName[][];<BR><BR></FONT>例如:<BR><BR><FONT
face=Arial>int
intArray[][];<BR><BR></FONT>与一维数组一样,这时对数组元素也没有分配内存空间,同要使用运算符<FONT
face=Arial>new</FONT>来分配内存,然后才可以访问每个元素。<BR><BR>对高维数组来说,分配内存空间有下面几种方法:<BR><BR><FONT
face=Arial>1</FONT>直接为每一维分配空间,如:<BR><BR><FONT face=Arial>int a[][]=new
int[2][3];<BR><BR>2</FONT>从最高维开始,分别为每一维分配空间,如:<BR><BR><FONT face=Arial>int
a[][]=new int[2][];<BR>a[0]=new int[3];<BR>a[1]=new
int[3];<BR><BR></FONT>完成<FONT face=Arial>1</FONT>中相同的功能。这一点与<FONT
face=Arial>C</FONT>、<FONT face=Arial>C++</FONT>是不同的,在<FONT
face=Arial>C</FONT>、<FONT face=Arial>C++</FONT>中必须一次指明每一维的长度。<BR><BR><FONT
color=#008000>二、二维数组元素的引用</FONT><BR><BR>对二维数组中每个元素,引用方式为:<FONT
face=Arial>arrayName[index1][index2] </FONT>其中<FONT
face=Arial>index1</FONT>、<FONT
face=Arial>index2</FONT>为下标,可为整型常数或表达式,如<FONT
face=Arial>a[2][3]</FONT>等,同样,每一维的下标都从<FONT
face=Arial>0</FONT>开始。<BR><BR><FONT
color=#008000>三、二维数组的初始化<BR></FONT><BR>有两种方式:<BR><BR><FONT
face=Arial>1</FONT>直接对每个元素进行赋值。<BR><BR><FONT
face=Arial>2</FONT>在定义数组的同时进行初始化。<BR><BR>如:<FONT face=Arial>int
a[][]={{2</FONT>,<FONT face=Arial>3}</FONT>,<FONT
face=Arial>{1</FONT>,<FONT face=Arial>5}</FONT>,<FONT
face=Arial>{3</FONT>,<FONT face=Arial>4}};<BR><BR></FONT>定义了一个<FONT
face=Arial>3×2</FONT>的数组,并对每个元素赋值。<BR><BR>四、二维数组举例:<BR><BR>例<FONT
face=Arial>5.4</FONT>矩阵相乘<BR><BR>两个矩阵<FONT face=Arial>Am×n</FONT>、<FONT
face=Arial>Bn×l</FONT>相乘得到<FONT face=Arial>Cm×l</FONT>,每个元素<FONT
face=Arial>Cij=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -