5.3 由实例引出不同数组种类及其使用
本节主要使用实例让读者能更加熟悉数组的使用。通过本节的学习,总结一些编程中所使用的编程思路。编程最重要的不是如何编写代码,使用哪种控制流程,最主要的是编程的思路,编程思路决定着这个程序代码的好与坏。
5.3.1 由实例引出一维数组及其使用
【实例5.2】先来看一个很简单的实例。有两个数组a[]、b[],输出它们中的各个数据,并且输出它们的长度。
01 ///初始化两个数组a、b
02 ///使用循环语句将两个数组内元素输出
03 ///并且使用length属性输出数组的长度
04 public class arrary2
05 {
06 public static void main(String[]args)
07 {
08 int[]a=new int[]{1,2,3,4,5};
09 int[]b=new int[]{2,3,4,5,6,7,8};
10 for(int i=0;i<a.length;i++)
11 {
12 System.out.println("a["+i+"]="+a[i]);
13 }
14 for(int j=0;j<b.length;j++)
15 {
16 System.out.println("b["+j+"]="+b[j]);
17 }
18 System.out.println("a数组的长度是:"+a.length);
19 System.out.println("b数组的长度是:"+b.length);
20 }
21 }
【代码说明】第8~9行初始化两个数组a和b。第10~13行for循环的次数取决于数组a的长度。第14~17行的循环次数同样取决于数组b的长度。
【运行效果】
a[0]=1
a[1]=2
a[2]=3
a[3]=4
a[4]=5
b[0]=2
b[1]=3
b[2]=4
b[3]=5
b[4]=6
b[5]=7
b[6]=8
a数组的长度是:5
b数组的长度是:7
这个程序段主要是将两个数组中的每个数据和整个数组的长度输出,而这个例子也是数组最简单的实例,下面再看一个稍微复杂的实例。
【实例5.3】有两个数组a[]、b[]。将两个数组中数据一一对应相乘,得出数组c,输出数组c的元素和3个数组的长度。
01 ///初始化两个数组a、b
02 ///将两个数组中对应的元素相乘得出第三个数组的元素
03 ///输出三个数组的长度
04 public class arrary3
05 {
06 public static void main(String[]args)
07 {
08 int[]a=new int[]{1,2,3,4,5};
09 int[]b=new int[]{2,3,4,5,6};
10 int[]c=new int[5];
11 for(int i=0;i<a.length;i++)
12 {
13 c[i]=a[i]*b[i];
14 }
15 for(int j=0;j<a.length;j++)
16 {
17 System.out.println("c["+j+"]="+(a[j]*b[j]));
18 }
19 System.out.println("a数组的长度是:"+a.length);
20 System.out.println("b数组的长度是:"+b.length);
21 System.out.println("c数组的长度是:"+c.length);
22 }
23 }
【代码说明】第10行首先声明一个没有初始数值的数组c,第11~14行通过循环为数组c赋值,然后第15~18行通过循环输出数组c中的元素,第19~21行输出3个数组的长度。
【运行效果】
c[0]=2
c[1]=6
c[2]=12
c[3]=20
c[4]=30
a数组的长度是:5
b数组的长度是:5
c数组的长度是:5
通过这段程序可以学习如何操作数组内各个元素,下面再看看更加复杂的程序段。
【实例5.4】创建一个整数型数组f,它拥有20个元素,并将它的各个元素赋值如下,然后输出它们。其函数关系如下所示:
f[0]=1;f[1]=2;f[i]=f[i-1]+f[i-2];
实例的详细代码如下所示。
01 ///条件中的是一个递归函数
02 ///通过一个循环语句将数组中所有的元素输出
03 public class arrary4
04 {
05 public static void main(String[]args)
06 {
07 int[]f=new int[20];
08 f[0]=0;
09 f[1]=2;
10 for(int i=2;i<f.length;i++)
11 {
12 f[i]=f[i-1]+f[i-2];
13 System.out.println("f["+i+"]="+f[i]);
14 }
15 }
16 }
【代码说明】这个程序段是数学中的一个递归函数,其中的运算过程交给了第10~14行的循环语句去处理。
【运行效果】
f[2]=2
f[3]=4
f[4]=6
f[5]=10
f[6]=16
f[7]=26
f[8]=42
f[9]=68
f[10]=110
f[11]=178
f[12]=288
f[13]=466
f[14]=754
f[15]=1220
f[16]=1974
f[17]=3194
f[18]=5168
f[19]=8362
上面所有的程序段,都是围绕着如何操作一维数组内的元素,其实一维数组在实际程序中的一些应用,不过是操作数组内部元素而已。