Java将两个数组转换为一个二维数组
我的程序中有两个长度相同的数组,courseGrades和courseCredits,它们看起来像这样: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[] = {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创建两个数组。代码片段未被检查-语法可能是错误的,因为我通常不使用数组,更经常使用列表和其他集合。