- 零基礎(chǔ)學(xué)Java第2版
- 陳潔
- 1473字
- 2018-12-31 19:34:39
5.3 由實例引出不同數(shù)組種類及其使用
本節(jié)主要使用實例讓讀者能更加熟悉數(shù)組的使用。通過本節(jié)的學(xué)習(xí),總結(jié)一些編程中所使用的編程思路。編程最重要的不是如何編寫代碼,使用哪種控制流程,最主要的是編程的思路,編程思路決定著這個程序代碼的好與壞。
5.3.1 由實例引出一維數(shù)組及其使用
【實例5.2】先來看一個很簡單的實例。有兩個數(shù)組a[]、b[],輸出它們中的各個數(shù)據(jù),并且輸出它們的長度。
01 ///初始化兩個數(shù)組a、b 02 ///使用循環(huán)語句將兩個數(shù)組內(nèi)元素輸出 03 ///并且使用length屬性輸出數(shù)組的長度 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數(shù)組的長度是:"+a.length); 19 System.out.println("b數(shù)組的長度是:"+b.length); 20 } 21 }
【代碼說明】第8~9行初始化兩個數(shù)組a和b。第10~13行 for循環(huán)的次數(shù)取決于數(shù)組a的長度。第14~17行的循環(huán)次數(shù)同樣取決于數(shù)組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數(shù)組的長度是:5 b數(shù)組的長度是:7
這個程序段主要是將兩個數(shù)組中的每個數(shù)據(jù)和整個數(shù)組的長度輸出,而這個例子也是數(shù)組最簡單的實例,下面再看一個稍微復(fù)雜的實例。
【實例5.3】有兩個數(shù)組a[]、b[]。將兩個數(shù)組中數(shù)據(jù)一一對應(yīng)相乘,得出數(shù)組c,輸出數(shù)組c的元素和3個數(shù)組的長度。
01 ///初始化兩個數(shù)組a、b 02 ///將兩個數(shù)組中對應(yīng)的元素相乘得出第三個數(shù)組的元素 03 ///輸出三個數(shù)組的長度 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數(shù)組的長度是:"+a.length); 20 System.out.println("b數(shù)組的長度是:"+b.length); 21 System.out.println("c數(shù)組的長度是:"+c.length); 22 } 23 }
【代碼說明】第10行首先聲明一個沒有初始數(shù)值的數(shù)組c,第11~14行通過循環(huán)為數(shù)組c賦值,然后第15~18行通過循環(huán)輸出數(shù)組c中的元素,第19~21行輸出3個數(shù)組的長度。
【運行效果】
c[0]=2 c[1]=6 c[2]=12 c[3]=20 c[4]=30 a數(shù)組的長度是:5 b數(shù)組的長度是:5 c數(shù)組的長度是:5
通過這段程序可以學(xué)習(xí)如何操作數(shù)組內(nèi)各個元素,下面再看看更加復(fù)雜的程序段。
【實例5.4】創(chuàng)建一個整數(shù)型數(shù)組f,它擁有20個元素,并將它的各個元素賦值如下,然后輸出它們。其函數(shù)關(guān)系如下所示:
f[0]=1;f[1]=2;f[i]=f[i-1]+f[i-2];
實例的詳細代碼如下所示。
01 ///條件中的是一個遞歸函數(shù) 02 ///通過一個循環(huán)語句將數(shù)組中所有的元素輸出 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 }
【代碼說明】這個程序段是數(shù)學(xué)中的一個遞歸函數(shù),其中的運算過程交給了第10~14行的循環(huán)語句去處理。
【運行效果】
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
上面所有的程序段,都是圍繞著如何操作一維數(shù)組內(nèi)的元素,其實一維數(shù)組在實際程序中的一些應(yīng)用,不過是操作數(shù)組內(nèi)部元素而已。
5.3.2 由實例引出二維數(shù)組及其使用
【實例5.5】針對二維數(shù)組,先看看下面的有關(guān)二維數(shù)組的例子:創(chuàng)建一個字符型二維數(shù)組,并根據(jù)執(zhí)行結(jié)果為各元素賦值,然后輸出各元素。
01 ///使用兩個數(shù)組分別代表空間中的x和y軸 02 ///通過循環(huán)語句將對應(yīng)的每一個坐標上的元素輸出 03 public class arrary5 04 { 05 public static void main(String[] args) 06 { 07 char[][] a; 08 a=new char[4][10]; 09 a[0]=new char[10]; 10 a[1]=new char[10]; 11 a[2]=new char[10]; 12 a[3]=new char[10]; 13 a[0][0]=65; 14 a[1][0]=67; 15 a[2][0]=69; 16 a[3][0]=71; 17 for(int i=0;i<a.length;i++) 18 { 19 for(int j=1;j<a[i].length;j++) 20 { 21 a[i][j]=(char)(a[i][j-1]+1); 22 System.out.print(a[i][j-1]); 23 } 24 System.out.println(); 25 } 26 } 27 }
【代碼說明】第13~16行首先為二維中第一列的數(shù)據(jù)賦值,這樣就可以通過第19~23行的循環(huán),通過一次加1的方式,輸出9個字母。第24行的代碼非常關(guān)鍵,起到輸出結(jié)果換行的作用。
注意
讀者從程序中可以看出二維數(shù)據(jù)其實每行有10個數(shù)據(jù),但我們只輸出了9個,讀者可通過更改第19~23行的代碼來實現(xiàn)10個數(shù)據(jù)的輸出。
【運行效果】
ABCDEFGHI CDEFGHIJK EFGHIJKLM GHIJKLMNO
上面的程序段只是操作二維數(shù)組中的元素而已,所以只要牢牢地記住數(shù)組的基本概念,其他的問題就可以迎刃而解。
- 黑客攻防從入門到精通(實戰(zhàn)秘笈版)
- SpringMVC+MyBatis快速開發(fā)與項目實戰(zhàn)
- Mastering Selenium WebDriver
- Kotlin開發(fā)教程(全2冊)
- 一本書講透Java線程:原理與實踐
- Oracle GoldenGate 12c Implementer's Guide
- Everyday Data Structures
- Building Slack Bots
- Android應(yīng)用開發(fā)實戰(zhàn)(第2版)
- 深度實踐KVM:核心技術(shù)、管理運維、性能優(yōu)化與項目實施
- PHP 8從入門到精通(視頻教學(xué)版)
- Docker on Windows
- Roslyn Cookbook
- C#程序設(shè)計基礎(chǔ)與實踐
- OpenCL異構(gòu)并行計算:原理、機制與優(yōu)化實踐