考虑以下Java代码,
public class FirstClass{
public static Object[][] firstMethod(){
Random random=new Random();
int a=random.nextInt(100);
int b=random.nextInt(100);
int n=0;
Object[][] arrayObj=new Object[a][b];
for(int i=0;i<a;i++)
for(int j=0;j<b;j++){
arrayObj[i][j]=++n;
}
return arrayObj;
}
}
public class SecondClass{
public void secondMethod(){
Object[][] myObj=FirstClass.FirstMethod();
}
}
如何获得&#39; myObj&#39;的尺寸长度?来自&#39; secondMethod()&#39;以及如何打印&#39; myObj&#39;
答案 0 :(得分:1)
要获得大小,您可以执行以下操作,假设统一分配。
public void secondMethod(){
Object[][] myObj=FirstClass.FirstMethod();
int a = myObj.length;
int b = myObj[0].length;
}
要打印数组,有很多方法,但考虑到问题的基调:
for (int i = 0; i < myObj.length; ++i) {
for (int j = 0; j < myObj[i].length; ++j) {
System.out.println(myObj[i][j]);
}
}
答案 1 :(得分:1)
在定义2D阵列的长度时,技术上有2种尺寸。一个是2D数组中的数组数,由myObj.length
给出。另一个是2D阵列中特定阵列中的元素数量,例如myObj[0].length
可以访问。这将返回myObj中第一个数组中的元素数。 0可以是任意数字,具体取决于您想知道其中包含多少元素的数组。我们可以使用这两个长度来打印出数组中的所有元素。
for (int i = 0; i < myObj.length; i++) {
for (int j = 0; j < myObj[i].length; j++) {
System.out.println(myObj[i][j]);
}
}
或者只是打印出每个阵列的大小,
for (int i = 0; i < myObj.length; i++) {
System.out.println(myObj[i].length);
}
或者将尺寸长度放入另一个数组
int[] dimLengths = new int[myObj.length];
for (int i = 0; i < myObj.length; i++) {
dimLengths[0] = myObj[i].length;
}
最后,Object[][] myObj=FirstClass.FirstMethod();
应为
Object[][] myObj=FirstClass.firstMethod();
(在firstmethod中小写f而不是大写)
答案 2 :(得分:1)
你的代码中几乎没有问题,就像没有main方法一样,方法调用FirstClass.FirstMethod();
中的方法名称错误。
这是代码
import java.util.Random;
class FirstClass{
public static Object[][] firstMethod(){
Random random=new Random();
int a=random.nextInt(100);
int b=random.nextInt(100);
int n=0;
Object[][] arrayObj=new Object[a][b];
for(int i=0;i<a;i++)
for(int j=0;j<b;j++){
arrayObj[i][j]=++n;
}
return arrayObj;
}
}
class SecondClass{
public void secondMethod(){
Object[][] myObj=FirstClass.firstMethod();
System.out.println(myObj.length); // length of row
System.out.println(myObj[0].length); //length of first column
System.out.println(java.util.Arrays.deepToString(myObj)); //will print 2d array
}
public static void main (String[] args){
new SecondClass().secondMethod();
}
}