Java基礎:數組,java基礎數組

來源:互聯網
上載者:User

Java基礎:數組,java基礎數組

轉載請註明出處:jiq•欽's technical Blog 

一、數組初始化

無論如何,當你要執行個體化一個數組對象的時候,必須要指定其大小。

不能在提供了initializer的情況下再去指定數組的維度!!!

 

正確的初始化方式有:

方式1:Int[][] array =new int[][]{{1,2},{3,4},{5},{2,4,2,1}}; 
方式2:Int[][] array ={{1,2},{3,4},{5},{2,4,2,1}}; 
方式3:Int[][] array =new int[3][5];For(int I =0;i<array.length;i++){For(int j=0;j<array[i].length;j++){Array[i][i] = i*j;}}

二、數組相對容器的優勢

數組原來有三個優勢:效率(付出的代價是大小固定),型別安全,以及儲存基本類型的能力。

在泛型之前,容器在處理對象的時候,都將他們視為沒有任何具體類型,然而數組指定持有某一具體類型,可以進行編譯時間檢查,但是自從1.5引入泛型時候,這個優勢消失了。自從引入封裝機制之後,容器也可以方便地應用與基本類型了。

所以,數組碩果僅存的優勢就是“效率”了。

選擇的原則是:當你使用最近的Java版本進行編程時,應該優先選擇容器而不是數組,只有在證明效能已成為問題(切換到數組有助於提高效能)時,你才應該將程式重構為數組。

 

三、數組在Java中是一個類

無論使用哪種類型的數組,數組標識只是一個引用,指向堆中一個真實的對象。

(1)如果是對象數組,那麼數組引用中儲存的是一系列對象的引用。

(2)如果是基本類型數組,那麼數組引用中儲存的是一系列基本類型的值。

數組對象只有一個唯讀成員length,'[]'文法是訪問數組對象的唯一方式。

 

四、java中如果你要返回一組值,那麼就使用數組

C/C++就不行,只能返回指標,雖然這時控制數組的生命週期就會變得困難,但是Java無需要為數組負責,只要你需要他,它就會一直存在,當你使用完後,記憶體回收行程會清理掉它。

publicString[] getFruits(){ ……… }

 

五、粗糙數組

Java支援粗糙數組,即構成矩陣的每個向量具備任意長度

Inta[][] = {{1,2}, {2, 4, 5}, {6, 4, 8, 9}};

 

六、數組+泛型

你無法執行個體化具有參數化型別的數組,因為數組必須知道它所持有的確切類型。但是你可以參數化數組本身的類型。

Type<Orange>[] pp = new Type<Orange>[10];

//compile error

Public static <T> T[] f(T[] args){ …… }

//OK

 

七、Arrays類

Array.sfill(a, 11);

Arrays.fill(b, 2, 7, "Hello");

用單一的值填充一個數組,如果是對象,則複製引用。

 

Arrays.equals();

比較兩個數組是否相等。deepEquals()用於多維陣列。此方法對於所有基本類型和Object都做了重載,用於比較兩個數組。相等的條件是元素個數相等,並且對應位置的元素也相等。

 

class Type implements Comparable<>

Type[] a = new Type[10];

Arrays.sort(a);

Class MyComparator implements Comparator{}Arrays.sort(a, new MyComparator());

對數組排序。可以對任意基本類型數組排序,也可以對對象數組排序,只要改對象實現了Comparable介面(包含compareTo方法)或者具有關聯的Comparator。

 

Arrays.binarySearch();

在已排序的數組中尋找元素。

 

Arrays.hashCode();

產生數組的散列碼。

 

Arrays.asList();

接收任意序列或者數組作為參數,轉換成List。

 

 

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.