2012-09-17 42 views
0

我有一個文件放在多維數組中。我必須將[date]設置爲[long],並且其中一個維度必須根據第二個標記的值進行遞增。在Java中增加多維數組

下面的代碼:

BufferedReader bufStatsFile = new BufferedReader(new FileReader(statsFile)); 

String line = null; 
List<Long[]> stats = new ArrayList<Long[]>(); 
stats.add(new Long[11]); 
int i = 0; // will be in a loop later 

while((line = bufStatsFile.readLine()) != null) { 
    StringTokenizer st = new StringTokenizer(line,";"); 
    while(st.hasMoreTokens()) { 
     stats.get(i)[0] = Long.parseLong(st.nextToken()); 
     stats.get(i)[Integer.parseInt(st.nextToken())]++; // Here is the problematic line. 
    } 
} 
bufStatsFile.close(); 

但增量不工作。也許這是因爲我的數組可能不正確,但我沒有找到另一種正確的方法來做到這一點。

回答

1

好的。我找到了,當然是愚蠢的。

問題出在我的數組聲明中。我這樣做:

List<Long[]> stats = new ArrayList<Long[]>(); 
    stats.add(new Long[11]); 

然後,我試圖增加一個對象,而不是一個很長的數字。

所以現在,我只是做這樣的:

List<long[]> stats = new ArrayList<>(); 
    stats.add(new long[11]); 

而且它完美的工作。

0

檢查文件中的元素是否爲0到10之間的數字。如果只操作行0,爲什麼要有List?

你的代碼扔掉了哪些異常?

+0

是的,我的文件中的數字是0到10之間的數字。 我有一個NullPointerException。不,我沒有解釋得很好。我有未知數量的行。 – Emilie

+0

嘗試服用stats.get(i)[0] = Long.parseLong(st.nextToken()); (st.hasMoreTokens())循環。 –

+0

仍然無法使用。 – Emilie