java——數組,java數組

來源:互聯網
上載者:User

java——數組,java數組

    數組是多個相同資料類型數組組合,其中資料類型是任何資料類型。

    陣列變數是參考型別變數,數組可以作為對象,數組中的每一個元素相當於對象的成員變數,所以數組元素可以預設初始化。(部落格java——變數分類有關於成員變數初始化的說明)。

一維數組
聲明

type var[];或者type[] var

初始化

動態初始化:定義與數組元素分配和賦值分開操作

int a[];a=new int[3];a[0]=0;a[1]=1;a[2]=2;

靜態初始化:定義的同時為數組元素分配空間並賦值

int a[]={1,2,3};
記憶體分析
class TestArray{public static void main(String arg[]){int[] s;s=new int[5];for(int i=0;i<5;i++){s[i]=i;}}}

以上程式執行到最後,記憶體應該是這樣的:

二維數組

二維數組可以看做以數組為元素的數組。

初始化

動態初始化(註:java中多維陣列的聲明和建立按照從高維到低維的順序進行)

int a[][]=new int[3][];a[0]=new int[2];a[1]=new int[4];a[2]=new int[3];

靜態初始化

int a[][]={{1,2},{2,3},{3,4}};
記憶體分析:
class TestArr{public static void main(String arg[]){int s[][]=new int[3][];s[0]=new int[2];s[1]=new int[4];s[2]=new int[3];for(int i=0;i<a.length;i++){for(int j=0;j<s[i].length;j++){s[i][j]=i;}}}}

以上程式執行到最後,記憶體應該是這樣的


總結

    1.java中一維數組的元素是資料類型相同的變數,而二維數組就是將多個一維數組組合成數組,所以理解好一維很重要。2.數組是引用變數,可以作為一個對象,而它的元素就是成員變數。


java 數組引用

因為數組是一個對象。。

java中的參數傳遞是引用傳遞。。

傳遞到
public B(String[] sss,String s){
sss[0]="bbbbb";
sss[1]="ccccc";
s="2222";
}
這裡的sss是那個數組對象的一個引用。。相當於指標。。
sss[0]="bbbbb";
sss[1]="ccccc";
這樣處理相當於是在調用這個數組的對象的方法。。
即相當於在對這個對象做處理。。
所以這個對象的值改變了。。
但是String [] a={null,"aaaaa"};a這個引用依然指向那個對象。。所以輸出結果就是改變後的結果。。
假如你將
public B(String[] sss,String s){
sss[0]="bbbbb";
sss[1]="ccccc";
s="2222";
}
改為
public B(String[] sss,String s){
String[] strs = new String[2];
strs[0]="bbbbb";
strs[1]="ccccc";
sss = strs;
s="2222";
}
這樣的話..是不會改變那個對象的值的..
只是對sss這個引用重新賦值..讓他指向了另一個對象而已..
這樣的話前面的a引用依然指向那個對象..那個對象的值也不會改變..

為什麼那個String對象的值沒有改變呢..
跟上面一樣了..
只是對s引用重新賦值了..讓他指向了一個新的String對象..
而String aa="111111";aa依然指向的是值為111111的這個String對象..
 
java數組的定義與使用方法

數組是有序資料的集合,數組中的每個元素具有相同的數組名和下標來唯一地確定數組中的元素。

§5.1一維數組

一、一維數組的定義

type arrayName[];

其中類型(type)可以為Java中任意的資料類型,包括簡單類型組合類別型,數組名arrayName為一個合法的標識符,[]指明該變數是一個數群組類型變數。例如:

int intArray[];

聲明了一個整型數組,數組中的每個元素為整型資料。與C、C++不同,Java在數組的定義中並不為數組元素分配記憶體,因此[]中不用指出數組中元素個數,即數組長度,而且對於如上定義的一個數組是不能訪問它的任何元素的。我們必須為它分配記憶體空間,這時要用到運算子new,其格式如下:

arrayName=new type[arraySize];

其中,arraySize指明數組的長度。如:

intArray=new int[3];

為一個整型數組分配3個int型整數所佔據的記憶體空間。

通常,這兩部分可以合在一起,格式如下:

type arrayName=new type[arraySize];

例如:

int intArray=new int[3];

二、一維數組元素的引用

定義了一個數組,並用運算子new為它分配了記憶體空間後,就可以引用數組中的每一個元素了。數組元素的引用方式為:

arrayName[index]

其中:index為數組下標,它可以為整型常數或運算式。如a[3],b[i](i為整型),c[6*I]等。下標 從0開始,一直到數組的長度減1。對於上面例子中的in-tArray數來說,它有3個元素,分別為:

intArray[0],intArray[1],intArray[2]。注意:沒有intArray[3]。

另外,與C、C++中不同,Java對數組元素要進行越界檢查以保證安全性。同時,對於每個數組都有一個屬性length指明它的長度,例如:intArray.length指明數組intArray的長度。

例5.1

public class ArrayTest{
public static void main(String args[]){
int i;
int a[]=newint[5];
for(i=0;i<5;i++)
a[i]=i;
for(i=a.length-1;i>=0;i--)
System.out.println("a["+i+"]="+a[i]);
}
}

運行結果如下:

C:\>java ArrayTest

a[4]=4
a[3]=3
a[2]=2
a[1]=1
a[0]=0

該程式對數組中的每個元素賦值,然後按逆序輸出。

三、一維數組的初始化

對數組元素可以按照上述的例子進行賦值。也可以在定義數組的同時進行初始化。

例如:

int a[]={1,2,3,4,5};

用逗號(,)分隔數組的各個元素,系統自動為數組分配一定空間。

與C中不同,這時Java不要求數組為靜態(static)。

四、一維數組程式舉例:

例5.2Fibonacci數列

Fibonacci數列的定義為:

F1=F2=1,Fn=Fn-1+Fn-2(n>=3)

public classFibonacci{
public static void main(String args[]){
int i;
int f[]=new int[10];
f[0]=f[1]=1;
for(i=2;i<......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.