程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java語言入門教程(十一):Java語言中的數組

Java語言入門教程(十一):Java語言中的數組

編輯:關於JAVA

在教程(十)中,我們學習了Java類之間常見的兩種關系,即關聯和依賴。 如果A關聯或依賴B,如果僅從A到B這個方向看,從數量上,可能有1對1和1對多 兩種可能。面向對象的應用,都是映射現實世界的對象以及對象之間的關系的, 仔細考察一下我們身邊的情況,對象與對象之間如果存在關聯或依賴,其實1對 多的關系更為常見。如,一個部門有多個員工,一個學員有多個院系,一個人有 多張畢業證書…

上篇文章中的例子,學生只能選擇一門免費課程學習,如果培訓中心加大優 惠力度,每個學生最多可以選擇3門課程學習,應該如何維護這種關系哪?

我們可能這樣嘗試:

package com.csst.relation;
public class Student {
       private String name;
       //注意此處修改
       private Course course1,course2,course3;
       public Student(String name) {
              super();
              this.name = name;
       }
//TBD
}

但是,接下來,完善chooseCourse,getCourse方法,我們將面臨困難。如何 得知目前已經選擇了幾門課程?如何能一次性將學員已經選擇的課程查詢出來?

也就是說,當關聯或依賴關系中,出現了1對多的數量關系時,我們必須找一 種特殊的對象來幫忙,這種對象能夠將我們需要管理的對象包裝起來,作為一種 數據容器使用,讓我們能很容易的把一些對象裝進去,很容易的再取出來。數組 就是一種解決辦法。在本文中,將介紹Java語言中數組的使用。

1、數組的定義和類型

數組是類型相同的元素的集合。也就是說,一個數組中所保存的數據都是一 個類型的。首先,記住一句話:Java中的數組是引用類型。也就是說,即使一個 數組中存的都是int數據,這個數組的類型也是引用類型。

2、數組的聲明:

假設要聲明一個int型數組,可以有兩種聲明方式:

int[] x;

int y[];

假設要聲明一個Course類型數組,可以有兩種聲明方式:

Course[] courses1;

Course courses2[];

可見,Java語言中聲明數組有兩種方式,一種是[]放在數組元素類型後,一 種是[]放到數組引用名字後。建議使用第一種方式,即int[],Course[]。因為數 組本身是一種數據類型,也就是說,從現在開始,看待int[],Course[],就應該 當作一個類型看待,如同看待String一樣。

3、數組的初始化:

數組可以使用new關鍵字初始化,使用new初始化時,必須在[]內指定數組的 長度。

int[] x=new int[3];

Course[] courses1=new Course[2];

使用new初始化數組後,數組內元素會被賦予默認值,如x中的元素均為0, courses1中的元素均為null。

如果在聲明的同時,即賦予初值,可以有如下兩種方式:

Int[] y ={12,23,45};

Course courses2=new Course[]{new Course(),new Course()};

賦值後,數組y是一個長度為3的數組,courses2是一個長度為2的數組。

4、多維數組

例如二維數組的聲明,和初始化過程:

double[][] d=new double[3][];
d[0]=new double[4];
d[1]=new double[5];
d[2]=new double[3];
d[0][0]=10;
d[0][1]=100;
//...

以上代碼,創建了一個二維數組,該數組包含3個一維數組,這3個一維數組 長度分別為4,5,3。按照這樣的語法和邏輯,還可以聲明三維,四維等多維數組 。

5、 數組的長度

數組的長度都在初始化時被指定,一旦指定,再也不能改變,也就是說,數 組的長度是不可變的。

如:

int[] x=new int[3];

System.out.println(x.length);//輸出3

注意,數組的長度使用length屬性取出,而不是length()方法。

6、 對數組的遍歷方法

方法一:使用長度控制循環

int[] x=new int[3];
for(int i=0;i<x.length;i++){
               System.out.println(x[0]);
        }

方法二:增強for循環

int[] x=new int[3];
for(int a:x){
               System.out.println(a);
        }

接下來,對於上面學員選擇免費課程的程序進行修改。

package com.csst.relation;
public class Student {
       private String name;
       //1.關聯關系:Student關聯Course(1對多關系)
       private Course[] courses=new Course[3];
       private int index;
       public Student(String name) {
              super();
              this.name = name;
       }
       //2.依賴關系:Student依賴Course
       public void chooseCourse(Course course){
              if(index<3){
                     this.courses[index]=course;
                     index++;
              }else{
                     System.out.println("最多選3門課程。");
              }
       }
       public Course[] getCourse(){
              return this.courses;
       }
}

在處理1對多關系時,數組是常用的解決方案。數組的優點是遍歷比較容易, 缺點是長度一旦確定,就無法改變。如果對象間的1:n關系,n的變化范圍較大, 就無法確定數組的長度。與數組類似,比數組更為靈活的解決方案,是集合,在 以後的文章中會介紹。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved