2012-10-27 89 views

回答

2

你需要給在RHS大小: - 不需要

static List<RssItem>[][] arr = (List<RssItem>[][])new List<?>[4][]; 

column大小,但你也可以給它: -

static List<RssItem>[][] arr = (List<RssItem>[][])new List<?>[4][5]; 

注意: -

你不能給一個specific類型的RHS類型參數。您將不得不使用WildCard。只有當您在陣列中實例化list時纔會指定特定類型。

要添加的東西到你的陣列,您可以使用此類型的循環: -

NOT測試

List<RssItem>[][] arr = (List<RssItem>[][])new ArrayList<?>[4][4]; 

    for (int i = 0; i < arr.length; i++) { 
     for (int j = 0; j < arr[i].length; j++) { 
      arr[i][j] = new ArrayList<RssItem>(); 

      arr[i][j].add(new RssItem()); 
     } 
    } 

    for (List<RssItem>[] val: arr) { 
     for (List<RssItem> val2: val) { 
      System.out.println(val2); 
     } 
    } 

PS: -

請不要使用2 D陣列List。這相當於一個三維陣列。即使你讓上面的循環以某種方式工作。它會使您的代碼在未來混亂。和你的人生地獄。在Java中還有很多其他數據結構,您應該考慮一下,如Map,這在這種情況下很有用。

即使有List高達3級是一個非常糟糕的主意。所以,請改變你的設計。

+0

ArrayList rssItems = new ArrayList ();我想添加二維數組中的rssItems –

+0

@MaxUsanin添加代碼。你可以嘗試一下。 –

+0

我不明白它是如何工作的......但它的工作原理=) –

2

您不能創建一個通用類型的數組。所以你需要使用演員。

List<RssItem>[][] arr = (List<RssItem>[][]) new ArrayList<?>[2][2]; 

但它仍然會是很好的實現List列表ArrayList<ArrayList<Type>>

List<ArrayList<RssItem>> list = new ArrayList<ArrayList<RssItem>>(); 
arr[0][0] = new ArrayList<Integer>(); 
arr[0][0].add(10); 
+0

ArrayList的數組列表的一個數組列表的RSSItems =新的ArrayList ();我想在二維數組中添加rssItems ... –

+0

@MaxUsanin爲此添加了示例:) –

0

數組列表的一個通用的排列=

這將是

ArrayList<ArrayList> list = new ArrayList<ArrayList>(); 
相關問題