Java将两个数组转换为一个二维数组

Java将两个数组转换为一个二维数组,java,arrays,loops,multidimensional-array,Java,Arrays,Loops,Multidimensional Array,我的程序中有两个长度相同的数组,courseGrades和courseCredits,它们看起来像这样: courseGrades[] = {A, A, B, A, C, A}; courseCredits[] = {1, 2, 1, 3, 2, 1}; A A B A C A 1 2 1 3 2 1 public class Pair<K, V> { public K key; public V val

我的程序中有两个长度相同的数组,courseGrades和courseCredits,它们看起来像这样:

courseGrades[] = {A, A, B, A, C, A};
courseCredits[] = {1, 2, 1, 3, 2, 1};
A    A    B    A    C    A
1    2    1    3    2    1
public class Pair<K, V> {
    public K key;
    public V value;

    public Pair() {}

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }
}
我想将它们组合成一个二维数组,如下所示:

courseGrades[] = {A, A, B, A, C, A};
courseCredits[] = {1, 2, 1, 3, 2, 1};
A    A    B    A    C    A
1    2    1    3    2    1
public class Pair<K, V> {
    public K key;
    public V value;

    public Pair() {}

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }
}
在Java中如何实现这一点? 此外,如何引用此数组中的每个元素?
很抱歉问了一个非常简单的问题,我还是java初学者。

事实证明,您可以分配引用,但前提是数组不是一个原语数组,如int或double


因此,在本例中,您必须使用Integer[]而不是int[]或将元素复制到新数组中。

结果表明,您可以分配引用,但前提是该数组不是一个原语数组,如int或double


因此,在本例中,您必须使用Integer[]而不是int[],或者将元素复制到一个新数组。

您似乎希望将字符串数组与int数组组合成一个二维数组

在Java中,2D数组只能存储一种东西,因此没有类型安全的方法来实现这一点。以这种方式存储它们将是不安全的[]:


您似乎希望将字符串数组与整数数组组合成二维数组

在Java中,2D数组只能存储一种东西,因此没有类型安全的方法来实现这一点。一种类型不安全的方法是将它们存储在对象[]中:

您可以创建一个Pair类,如下所示:

courseGrades[] = {A, A, B, A, C, A};
courseCredits[] = {1, 2, 1, 3, 2, 1};
A    A    B    A    C    A
1    2    1    3    2    1
public class Pair<K, V> {
    public K key;
    public V value;

    public Pair() {}

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }
}
您可以创建一个Pair类,如下所示:

courseGrades[] = {A, A, B, A, C, A};
courseCredits[] = {1, 2, 1, 3, 2, 1};
A    A    B    A    C    A
1    2    1    3    2    1
public class Pair<K, V> {
    public K key;
    public V value;

    public Pair() {}

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }
}

我认为你必须复制数组元素。可以只分配引用,但我必须测试它,你也可以。如果你将courseGrades和courseCredits转换为Object[],那么你可以将预期结果设置为Object[][]结果=新对象[][2];结果[0]=courseGrades;结果[1]=课程编辑;并且不会发生内存复制。不过,如果您想记住一个数组包含int,而另一个数组包含字符串,那么您就不走运了。你实际上需要做的是创建一个课程类来保持分数和学分,然后你制作一个课程数组,而不是为它的parts.PS创建两个数组。代码段未被检查-语法可能错误,因为我通常不使用数组,更经常使用列表和其他集合。我认为您必须复制数组元素。可以只分配引用,但我必须测试它,你也可以。如果你将courseGrades和courseCredits转换为Object[],那么你可以将预期结果设置为Object[][]结果=新对象[][2];结果[0]=courseGrades;结果[1]=课程编辑;并且不会发生内存复制。不过,如果您想记住一个数组包含int,而另一个数组包含字符串,那么您就不走运了。你实际上需要做的是创建一个课程类来保持分数和学分,然后你制作一个课程数组,而不是为它的parts.PS创建两个数组。代码片段未被检查-语法可能是错误的,因为我通常不使用数组,更经常使用列表和其他集合。