2012-03-04 146 views
0

我想創建一個多維數組列表。但不加,這是我的代碼多維arraylist無法插入另一個數組列表

這裏初始化

 public class BinList { 

private ArrayList<Garbage> GarbageList; 
private int[] PenaltyArray = new int[10]; 
private ArrayList BoostList; 

這是構造

public BinList() { 
    BoostList = new ArrayList<Integer>(); 
} 

這是方法,這種方法有兩個參數,第一個是文件路徑,第二個是從1到10的循環。所以我讀取文件並將循環編號的每行信息發送到另一個方法來創建ArrayList(ArrayList),它工作正常,所以當這個方法完成時,所有該文件被讀取我插入ArrayList(ArrayList)到arraylist(ArrayList BoostList),但在這個ArrayList中沒有新的值。我在這裏做錯了什麼?如果有更多的代碼需要告訴我

 public void ReadLine(String filePath, int Container) { 
    try { 
     File file = new File(filePath); 
     Scanner scan = new Scanner(file); 
     GarbageList = new ArrayList<Garbage>(); 
     while (scan.hasNextLine()) { 
      String readLine = scan.nextLine(); 

      if (readLine != null) { 

       getSplitLinesOrders(readLine, Container); 
      } 
     } 

     ((ArrayList) BoostList.get(Container)).add(GarbageList); 


    } catch (Exception e) { 
    } 
} 

回答

2

您正在嘗試從BoostList得到一個ArrayList:

((ArrayList) BoostList.get(Container)).add(GarbageList); 

但你永遠不添加任何BoostList,所以這總是會失敗。

你捕獲異常,但無聲地吞下它們(你不打印錯誤),所以這個問題是隱藏的。

1

你的多維ArrayList是奇怪的。你有沒有考慮過使用Map

或者,您的情況,你應該使用番石榴Multimap。這裏是解釋概念的an info page