2014-10-20 207 views
0

我有一個名爲gradeTable的二維數組。該數組包含屬於a,q,p,e和f類別的等級。我試圖創建一個採用新等級的方法(即a100,q90,e65)並將其添加到相應的行。該等級以數字等級之後的類別作爲字符串。我知道每次添加新成績時都需要創建一個新陣列,但我不確定如何在適當的位置獲得每個成績。該方法是一個布爾值,如果添加成績則返回true,如果未找到類別(字符串開頭的字母),則返回false。任何意見,將不勝感激。將新對象添加到2D陣列

public boolean addGrade(String newGradeIn) {  

    char row = newGradeIn.charAt(0); 
    int grade = Integer.parseInt(newGradeIn.substring(1)); 

    gradeTable[row] = Arrays.copyOf(gradeTable[row], gradeTable[row].length + 1);  

} 

這就是我到目前爲止所做的。我知道它不會編譯,因爲我沒有return語句。

+1

嘗試的ArrayList而不是數組,以避免創建一個新的陣列每次 – 2014-10-20 16:27:09

+0

我需要使用數組。 – kb94 2014-10-20 16:27:45

+1

到目前爲止你有什麼? – 2014-10-20 16:28:17

回答

2
String input = /*get user input*/ 
char cat = input.charAt(0); 
int grade = Integer.parseInt(input.substring(1)); 

int[] oldArr = gradeTable[cat]; 
int[] newArr = Arrays.copyOf(oldArr, oldArr.length + 1); 
newArr[newArr.length - 1] = grade; 
gradeTable[cat] = newArr; 
+0

@ kb94你將不得不在這裏自己做點小動作。你不明白我上面寫的代碼嗎?如果不是,有什麼具體的你不明白? – thatidiotguy 2014-10-20 16:49:22

+0

我對數組瞭解不多,而且我很難理解所有的概念。我現在明白了代碼。謝謝你的幫助。如果添加新等級,我仍不明白如何讓方法返回true,如果不是,則返回false。 – kb94 2014-10-20 16:52:21