如何创建一个包含 2 个不同类型数组的数组 Java

How to create an Array with 2 Arrays inside of different types Java

我有2个数组,一个String类型,一个Int类型。是否可以将这两个都放入另一个数组中?

说明示例:

String[] grades = { A, B, C, D, E, F };
int[] marks = { 90, 80, 70, 60, 50 };

int[][] combined { grades, marks };

我需要能够通过键入 combined[0][4](以接收 'E')等使用组合数组来单独寻址它们中的每一个

如果可能的话,我的 class return 类型会用什么?它目前设置为 return int[][] 但这不起作用,因为字符串无法转换为 int。

我目前的理论是让它 return 一个字符串数组并将我的整数转换为字符串,但这效率低下并且失去了很多功能,如果有人知道任何更聪明的方法来做到这一点我会喜欢任何建议。

感谢您的宝贵时间

方法 1: 您可以使用二维对象数组。

int max = Math.max(grades.length,marks.length);

示例:

Object[][] objArr = new Object[max][2];
objArr[0][0] = marks[0];
objArr[0][1] = grades[0];

数组看起来像 {90,A}

到return一个字符串你可以获得成绩并将其转换为String

 return (String) obj[0][1];   // returns "A"

方法 2: 您可以使用 ascii 值表示成绩,并且可以将它们放在 2D 整数数组本身中。

Integer[][] marksAndGrades = new Integer[max][2];
marksAndGrades[0][0] = marks[0];
marksAndGrades[0][1] = (int)grades[0].charAt(0);

这里的数组看起来像 {90,65}

到return根据分数的等级

return String.valueOf((char)(int)marksAndGrades[0][1]);   // returns "A"

您可以通过首先将数字数组从 int[] 更改为 Integer[],然后将组合数组更改为 Object[][]:

来实现此目的
String[] grades = { "A", "B", "C", "D", "E", "F" };
Integer[] marks = { 90, 80, 70, 60, 50 };

Object[][] combined = { grades, marks };