一維數組的創建及使用


1. 創建一維數組

數組作為對象允許使用new關鍵字進行內存分配。在使用數組之前,必須首先定義數組變量所屬的類型。一維數組的創建有兩種形式。

a. 先聲明,再用new運算符進行內存分配

聲明一維數組有以下兩種方式:

數組元素類型 數組名字[];

數組元素類型[] 數組名字;
數組元素類型決定了數組的數據類型。它可以是Java中任意的數據類型,包括簡單類型和組合類型。數組名字為一個合法的標識符,符號“[ ]”指明該變量是一個數組類型變量。單個”[ ]”表示要創建的數組是一個一維數組。

int arr[]; //聲明是int型數組,數組中的每個元素都是int型值
String str[]; //聲明String數組,數組中的每個元素都是String型數值

聲明數組后,還不能立即訪問他的任何元素,因為聲明數組只是給出了數組名字和元素的數據類型,要想真正的使用數組,還要為它分配內存空間。在為數組分配空間時必須指明數組的長度,為數組分配內存的語法格式為:

數組名字  = new 數組元素的類型[數組元素的個數];

數組名字:被連接到數組變量的名稱。
數組元素的個數:指定數組中的個數,即數組的長度。

使用new關鍵字分配數組時,必須指定數組元素的類型和數組元素的個數,即數組的長度。

數組名字:被連接到數組變量的名稱。
數組元素的個數:指定數組中的個數,即數組的長度。
使用new關鍵字分配數組時,必須指定數組元素的類型和數組元素的個數,即數組的長度。

//為數組分配內存 arr = new int[5];

以上代碼表示要創建一個有5個元素的整型數組,並且將創建的數組對象賦給引用變量arr,即引用變量arr引用這個數組。如下圖所示:


在圖中arr為數組名稱,方括號“[ ]” 中的值為數組的下標。數組通過下標來區分數組中的不同元素。數組的下標是從0開始的。由於創建的數組arr中有5個元素,因此數組中元素的下標為0~4.
使用new關鍵字為數組分配內存時,整型數組中各個元素的初始值都為0。

2. 聲明的同時為數組分配內存
這種創建數組的方法是將數組的聲明和內存的分配合在一起執行。語法如下所示:

數組元素的類型 數組名 = new 數組元素的類型[數組元素的個數];
//聲明並為數組分配內存
int month[ ] =new int[12];

上面代碼創建數組month,並指定了數組的長度為12。
這里寫圖片描述

2. 初始化一維數組

數組與基本數據類型一樣可以進行初始化操作。數組的初始化操作可分別初始化數組中的每個元素。數組的初始化有以下兩種形式

 
int arr[]=new int[]{1,2,3,4,5}; //第一種初始化方式
int arr2[] ={12,34,29,22}; //第二種初始化方式

從中可以看出,數組的初始化就是包括大括號之內用都好分開的表達式列表。用括號( , )分割數組中的元素,系統自動為數組分配一定的空間。用第一種初始化方式,將創建5個元素的數組,依次為1、2、3、4、5。第二種初始化方式,會創建4個元素的數組,依次為12、34、29、22。

3. 使用一維數組
在Java集合中一維數組是常見的一種數據結構。通過使用一維數組來對其進一步了解。

public class Day{//創建類
    public static void main(String[] args){//主方法
        //創建並初始化一維數組
        int day[]=new int[]{31,28,31,30,31,30,31,30,31,31,30,31};
        //利用for循環將信息輸出
        for(int i=0; i <12;i++){
        //輸出的信息
            System.out.println((i+1)+"月有"+day[i]+"");
        }
    }
}

運行結果如下:

 

 

//聲明
int[] a;
int b[];

//創建數組對象
a = new int[4];
b = new int[5];

//動態初始化:
for(int i=0;i<a.length;i++){
    a[i]=i*12;
}

//靜態初始化
int c[]= {23,43,56,78}; //內存中開辟空間的同時賦值;長度是4,索引范圍是0~3

Car[] cars = {
        new Car("奔馳"),
        new Car("寶馬"),
        new Car("奧迪")
          };


Car c2 = new Car("奔馳");

//接下來,可以驗證上面的兩個奔馳是否相等
System.out.println(c2== cars[0]);
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM