在数组中存储学生姓名和测验分数

时间:2017-02-18 16:50:25

标签: java arrays

对于作业,我被要求

  • 用于存储五个学生姓名的一维数组,
  • 用于存储姓名和测验分数的二维数组。

到目前为止,我有以下代码:

public static void main(String[] args)
{
    java.util.Scanner input = new Scanner(System.in);
    String[] n = {"Jessica", "Tom", "Sandy", "Jimmy", "Leah"};
    double [][] m = {
        {90,70,0},
        {70,80,0}, 
        {50,80,0}, 
        {90,10,0}, 
        {40,30,0}
    };
    // Remaining code
}

我在一维数组中有学生姓名,在二维数组中有测验分数,但是当我尝试将名字放入二维数组时,我不断收到错误。

我是否必须更改2D阵列的数据类型?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

2D数组是一种类型还是另一种类型。你不能让它在第一个数组上是double,在另一个数组中是String。

您不能将名称存储为双精度数,但可以将双精度数存储为字符串。

相反,您可以将数组设为String并将分数设置为字符串(" 10")而不是10,因为您需要统一的数据类型。例如,

String[][] scores = {{"Bob, "Tom", "Kim"}, {"100","50","95"}};

答案 1 :(得分:0)

您可以改用Object 所有类都继承自Object

String[] n = {"Jessica", "Tom", "Sandy", "Jimmy", "Leah"};
Object [][] m = {
        {n[0], 90, 70, 0},
        {n[1], 70, 80, 0},
        {n[2], 50, 80, 0},
        {n[3], 90, 10, 0},
        {n[4], 40, 30, 0},
};

通常情况下Map的一个实例就足够了,让它看起来感觉更好;)

答案 2 :(得分:0)

我建议使用Map将学生姓名和测验分数放在这样:

Map<String, Integer[]> map = new HashMap<>();
map.put("Jessica", new Integer[]{70, 80, 0});
map.put("Tom", new Integer[]{70, 80, 0});
map.put("Sandy", new Integer[]{50, 80, 0});
map.put("Jimmy", new Integer[]{90, 10, 0});
map.put("Leah", new Integer[]{40, 30, 0}); 

所以,如果你想获得学生的分数,你可以:

System.out.println(Arrays.toString(map.get("Jessica")));