Java 數(shù)組

一維數(shù)組

聲明并創(chuàng)建數(shù)組變量

elementType[] arrayRefVar = new elementType[arraySize];
elementType arrayRefVar[]= new elementType[arraySize];(元素類型 數(shù)組引用變量[])

推薦使用第一種方法,元素類型可以是任意數(shù)據(jù)類型,但是數(shù)組中所有元素的數(shù)據(jù)類型必須一樣。

簡寫: elementType[] arrayRefVar = {value0,value1,...,valuek};

使用初始化數(shù)組簡寫方式,必須將聲明、創(chuàng)建和初始化數(shù)組都放在一條語句中。將它們分開會產(chǎn)生語法錯誤。

聲明一個數(shù)組變量時并不給數(shù)組分配內(nèi)存空間,只是創(chuàng)建一個數(shù)組引用的存儲位置,如果變量不包含對數(shù)組的引用,那么變量的值為null。 除非數(shù)組已經(jīng)被創(chuàng)建,否則不能給它分配任何元素。

數(shù)組大小和默認值

數(shù)組一旦被創(chuàng)建它的大小就是固定的,不能被修改,只能通過arrayRefVar[index]引用變量(地址)和元素下標訪問數(shù)組元素。 越界訪問是經(jīng)常出現(xiàn)的程序錯誤,會拋出一個運行時錯誤arrayIndexOfBoundsException,因此下標的范圍不能超出0~arrayRefVar.length-1。

當創(chuàng)建數(shù)組后,它的元素被賦予默認值。數(shù)值型基本數(shù)據(jù)類型的默認值是0,char型的默認值為'\u0000',Boolean型的默認值是false。

for each 循環(huán)

for (double e : myList){ System.out.println(e); }

注意:變量e必須聲明為與myList中元素相同的數(shù)據(jù)類型。

復(fù)制數(shù)組

在Java中,可以使用賦值語句復(fù)制基本數(shù)據(jù)類型的變量,但不能復(fù)制數(shù)組。
將一個數(shù)組變量賦值給另一個數(shù)組變量,list1 = list2 ;實際上是將一個數(shù)組的引用復(fù)制給另一個變量,使兩個變量都指向相同的內(nèi)存地址。

復(fù)制數(shù)組的方法
  • 使用循環(huán)語句逐個地復(fù)制數(shù)組中的元素
  • 使用System類中的靜態(tài)方法arraycopy
    arraycopy(sourceArray,srcPos,targetArray,tarPos,length);
    參數(shù)srcPostarPos分別表示在源數(shù)組sourceArray和目標數(shù)組targetArray中的起始位置。復(fù)制的元素個數(shù)由length指定。復(fù)制完成后,源數(shù)組和目標數(shù)組具有相同的內(nèi)容,但內(nèi)存空間獨立。
  • 使用clone方法復(fù)制數(shù)組

將數(shù)組傳遞給方法

當一個數(shù)組傳遞給方法時,數(shù)組的引用被傳遞給方法。即方法中的數(shù)組和傳遞的數(shù)組是一樣的,如果改變方法中的數(shù)組,方法外的數(shù)組也會改變。
例:

public  class  test{
    public  static  void  main(String[] args){
        int[] list = {1,2,3,4,5};
        reverse(list);
        for(int i = 0;i<list.length;i++)
            System.out.print(list[i]+"");

    }

    public static  void reverse(int[] list){
        int[] newList = new  int[list.length];

        for(int i = 0;i<list.length;i++){
            newList[i] = list[list.length-1-i];
        }
        list = newList;
    }
}

輸出為12345 方法中的引用變量改變不影響方法外,但是方法中的數(shù)組元素改變,方法外同樣改變。

二分查找法

二分查找法的前提條件是列表必須以升序排序。如果關(guān)鍵字在列表中,則返回其匹配元素的下標;否則返回一個負整數(shù)k,滿足-k-1為插入該關(guān)鍵字的位置。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容