1. 程式人生 > >052_陣列_陣列基本概念

052_陣列_陣列基本概念

一、陣列的概念介紹
  陣列:陣列是相同型別資料的有序集合. 陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成。其中,每一個數據稱作一個數組元素,每個陣列元素可以通過一個下標來訪問它們.
二、陣列的四個基本特點:
  1.其長度是確定的。陣列一旦被建立,它的大小就是不可以改變的。
  2.其元素必須是相同型別,不允許出現混合型別。
  3.陣列中的元素可以是任何資料型別,包括基本型別和引用型別。
  4.陣列變數屬引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變數。陣列本身就是物件,Java中物件是在堆中的,因此陣列無論儲存原始型別還是其他物件型別,陣列物件本身是在堆中的。

三、陣列的建立和初始化  

  1.宣告的時候並沒有例項化任何物件,只有在例項化陣列物件時,JVM才分配空間,這時才與長度有關。因此,宣告陣列時不能指定其長度(陣列中元素的個數),例如: int a[5]; //非法
  2.宣告一個數組的時候並沒有陣列被真正的建立。
  3.構造一個數組,必須指定長度。

  宣告(一維陣列的宣告方式有兩種)

    1.type[] arr_name;(推薦使用這中方式)
    2.type arr_name[];

  初始化

 

  1. 靜態初始化
  除了用new關鍵字來產生陣列以外,還可以直接在定義陣列的同時就為陣列元素分配空間並賦值。
    int[] a = {1,2,3};
    Man[] mans = {
    new Man(1,1),
    new Man(2,2)
    };
  2.動態初始化
  陣列定義與為陣列元素分配空間並賦值的操作分開進行。
    int[] a = new int[2];
    a[0]=1;
    a[1]=2;

四、演示示例  

package edu.aeon.test;

/**
 * [說明]:測試一維陣列的建立及初始化
 * 
 * @author aeon
 *
 */
public class TestArray {

    public static void main(String[] args) {
        int[] s = null; // 1
        s = new int[10]; // 2
        for (int i = 0; i < 10; i++) {
            s[i] = 2 * i + 1;
            System.out.println(s[i]);
        } 
// 3 } }

結果截圖:

  

該示例在記憶體中的記憶體結構圖為:

blob.png
   

blob.png

blob.png

 

  建立引用型別一維陣列示例:

  

1 2 3 4 5 6 7 8 9 class  Man{ private  int  age; private  int  id; public  Man( int  id, int  age) {      super (); this .age = age; this .id = id; } }

blob.png

blob.png
   

1 2 3 4 public  class  AppMain { public  static  void  main(String[] args) { Man[] mans;    mans =  new  Man[ 10 ];   //1

blob.png

1 2 3 4 5 6 Man m1 =  new  Man( 1 , 11 ); Man m2 =  new  Man( 2 , 22 );   //2 mans[ 0 ]=m1; mans[ 1 ]=m2;   //3 } }

blob.png