2014-10-20 158 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