Java中的數(shù)組

數(shù)組是由同一類型對象護著基本數(shù)據(jù)組成。

數(shù)組是對象,先定義數(shù)組名字,用動態(tài)的方式分配數(shù)組空間,再初始化的。

每個數(shù)組都有一個成員變量length,即含有元素的個數(shù)。

Java中數(shù)組的創(chuàng)建和使用

數(shù)組聲明->創(chuàng)建->元素初始化->使用數(shù)組

1. 數(shù)組引用的聲明

-無需指明元素個數(shù),也不為數(shù)組元素分配內(nèi)存空間

-必須初始化以后才能使用,不然就是空引用。

-兩種數(shù)組聲明方式:Type[] arrayName; ?或者 Type arrayName[];

2.創(chuàng)建數(shù)組(使用動態(tài)分配的方法)

-用關鍵字new構(gòu)成數(shù)組的創(chuàng)建表達式,制定數(shù)組類型和元素個數(shù)。元素個數(shù)可以是常量或者變量(只要變量已經(jīng)取得值了就行)。例如:int[] ai; ai=new int[10];

-也可以將數(shù)組的聲明和創(chuàng)建一并執(zhí)行:int ai[]=new int [10];

-也可以在一條語句中創(chuàng)建多個數(shù)組:String[] s1=new String[3],s2=new String[8];

3.數(shù)組元素初始化

-如果定義時不初始化,是不會有垃圾數(shù)據(jù)的,數(shù)值型自動初始化為0;引用類型自動變?yōu)榭找?null)?(什么意思?);boolean類型默認值為false;

-初始化方法:聲明數(shù)組名時,給出數(shù)組初值:int a[]={22,33,44,55};



4.數(shù)組的使用

-單獨使用元素:arrayName[index],index類型必須是int,short,byte,或char

-下標計數(shù)從0開始

-元素個數(shù)即為數(shù)組長度,可以通過arryName.length得到

-數(shù)組名是一個引用(即,就是一個名字)例如:


例題1

a1數(shù)組在聲明時就已經(jīng)初始化了,一共有五個元素,而a2數(shù)組只進行了聲明,也就是只是一個引用。當執(zhí)行a2=a1;語句時,有點像C語言中的指針,a1、a2兩個引用都指向了同一個數(shù)組。最后兩個for循環(huán),無論是通過a1還是a2名稱,都是去訪問了同一個數(shù)組。也就是同一個數(shù)組的兩個名字。

-當我們真正想要復制一個數(shù)組出來,則可以用arraycopy這個方法:


數(shù)組的全部或者部分的復制

①數(shù)組元素部分復制:arraycopy的參數(shù)依次是:源數(shù)組,從源數(shù)組哪一個位置開始復制,目標數(shù)組,目標數(shù)組開始復制的位置,一共復制多少個字符。


部分復制

上面插圖的最后一句,表明在Java中,字符數(shù)組不能夠被當做字符串直接輸出,而是將字符數(shù)組作為初始值,構(gòu)造一個新的String對象,在進行輸出。


以上,一維數(shù)組

一下,多維數(shù)組(以二維數(shù)組為例):


二維數(shù)組

-二維數(shù)組的聲明和構(gòu)造:

? ①int[][] myArray; //myArray是一個指向二維整數(shù)數(shù)組的引用,初始值為null(空引用)。使用時還需要初始化(new)。

? ②int[][] myArray=new int[3][5]; //同時構(gòu)造并初始化引用,只是有了空間,沒有初始值,默認均為0。

? ③int[][] myArray={{8,1,2,2,9},{1,9,4,0,3},{1,1,1,3,3}}; //也就是同時引用、構(gòu)造并初始化數(shù)組。

例如:


二維數(shù)組長度的問題

-Java中二維數(shù)組的長度是指的數(shù)量,而非所有元素!

-而每一行都有自己的長度。Java中每一行的長度可以不一樣的。例如上述的第一行,長度是3;

輸出結(jié)果:第一行是二維數(shù)組的行數(shù),接下來分別是每一行的元素個數(shù)

總的來說,Java中的二維數(shù)組就是由一維數(shù)組構(gòu)成的數(shù)組!


課后習題疑問:

6. 對于下列代碼

String str1=”java”;

String str2=”java”;

String str3 = new String(“java”);

StringBuffer str4 = new StringBuffer(“java”);

以下表達式的值為true的是()

str1==str2

str1==str4

str2==str3

str3==str4

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 1 數(shù)組No11 數(shù)組:存放一組相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) 數(shù)組本身是引用數(shù)據(jù)類型,數(shù)組中的元素可以是基本數(shù)據(jù)類型...
    征程_Journey閱讀 658評論 0 1
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • java中的數(shù)組 語法: 注意: 數(shù)組相當于一個大的容器,里面按順序存放了很多相同類型的數(shù)據(jù)元素; 想要獲取數(shù)組中...
    _信仰zmh閱讀 624評論 0 1
  • 每每談及我的家人,我的生活,我總會說我很幸福。 和我比較親近的家人,都很關愛我,疼我。因果吧,因為我爸對他們好,尤...
    小仲子閱讀 340評論 0 0
  • 一復述發(fā)生的事情; 二明確對不起,請求原諒; 三理解對方的感受,具體的感受; 四道明自己違背的原則或道德等; 五表...
    拂曉健行閱讀 1,020評論 0 0