对于作业,我被要求
到目前为止,我有以下代码:
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阵列的数据类型?我该如何解决这个问题?
答案 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")));