2017-06-05 84 views
4

返回我有以下示例的問題:與數組初始化多維數組的功能

public static void main(String[] args) { 

    // this works 
    int[] test1DArray = returnArray(); 

    int[][] test2DArray = new int[][] { 

     // this does not work 
     new int[]= returnArray(), 

     // yet this does 
     new int[] {1, 2 ,3} 
} 

private static int[] returnArray() { 

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

我正在尋找一種方式來創建一個二維數組,並有第二個維度是數組從一個方法返回。我不明白爲什麼這是行不通的,因爲我在Eclipse中收到錯誤是

賦值的左邊必須是一個變量

從我的理解,我創建一個新的int數組並將返回的值賦給它。立即填充第二維數組這樣

new int[] {1, 2 ,3} 

的作品就像一個魅力,我希望做與同時還給我從returnArray()

任何幫助是極大的讚賞陣列類似的東西。

P/

回答

4

只需使用:

int[][] test2DArray = new int[][] { 
    returnArray(), 
    new int[] {1,2 ,3} 
}; 
+0

謝謝,就是我在找的東西! –

2

雖然@Eran已經解決了這個問題,我覺得你應該明白爲什麼這個地方出了錯。

當初始化數組的內容時,基本上是將值返回給它。

例如:new int[]{1, 2, 3}test2Darray之內返回1,2和3,而int[] n = new int[]{1, 2, 3}正在初始化並在test2Darray之內聲明一個數組。後者沒有在數組內返回任何原始值,所以它給出了一個錯誤。

returnValue()是一種返回值(整型數組)的方法。所以控制器認爲它相當於輸入new int[]{1, 2, 3}。因此new int[]{1, 2, 3}returnValue()工作。

+0

感謝您的背景,真的有助於瞭解我出錯的地方! –