[英]Writing two dimensional array in java
我的Java程序中有以下二维数组。
Integer[][] arrayOfSets = {
{1,2,5,6,9,10},
{9,10,11,12},
{1,2,3,4},
{3,5,6,7,8},
{9,10,11,12},
{4,8},
};
有人可以告诉我如何使程序动态化的代码吗,程序会要求用户输入行号和列号,即二维数组应容纳多少个数组,然后询问用户每个数组的大小和每个数组应容纳的数字是多少? 非常感谢。
到目前为止,这是我尝试过的:
System.out.println("HOw many sets arrays would you like");
int numArrays=sc.nextInt();
Integer [][] arrayName = new Integer[numArrays][];
for(int i=0;i<arrayName.length;i++){
System.out.println("enter the size of the array number"+i);
int sizeArray=sc.nextInt();
for(int k=0;k<sizeArray;k++){
System.out.println("enter element");
int e=sc.nextInt();
arrayName[i][k]=e;
}
}
这看起来正确吗? 感谢您提前提供的所有帮助。
好吧,我再次修改了鳕鱼。 以下是我现在所拥有的:
System.out.print(“您要多少个阵列?”); int numSets = sc.nextInt(); Integer [] []结果= new Integer [numSets] [];
for (int k=0; k< numSets; k++){
System.out.println("Enter the size of the array");
int setSize = sc.nextInt();
Integer[] row = new Integer[setSize];
for (int m=0; m< setSize; m++){
System.out.println("enter element: ");
row[m] = sc.nextInt();
}
result[k] = row;
}
你所拥有的几乎是正确的。 这个:
Integer [][] arrayName = new Integer[numArrays][];
创建第一个尺寸,但是您还需要创建单独的第二个尺寸。 读完每个数组的大小后:
int sizeArray=sc.nextInt();
您需要创建相应的数组:
arrayName[i] = new Integer[sizeArray];
这是您可以调整的示例函数:
Integer[][] createSampleArray()
{
final int N1 = 5;
Random r = new Random();
Integer[][] result = new Integer[N1][];
for (int i = 0; i < N1; ++i)
{
final int N2 = r.nextInt();
Integer[] row = new Integer[N2];
for (int j = 0; j < N2; ++j)
{
row[j] = r.nextInt();
}
result[i] = row;
}
return result;
}
啊哈,您的问题是您没有创建任何一维数组来将元素放入:
Integer [][] arrayName = new Integer[numArrays][];
for(int i=0;i<arrayName.length;i++){
System.out.println("enter the size of the array number"+i);
int sizeArray=sc.nextInt();
for(int k=0;k<sizeArray;k++){
System.out.println("enter element");
int e=sc.nextInt();
arrayName[i][k]=e;
}
}
您不能分配arrayName[i][k]
直到您分配arrayName[i]
第一的每一行:
arrayName[i] = new Integer[sizeArray]
;
您只是提示用户输入初始数组大小,然后初始化数组。
import java.util.Scanner;
public class blah {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("How Many Rows?");
int rows = s.nextInt();
System.out.println("How Many Colums?");
int cols = s.nextInt();
int [][] arrayOfSets = new int [rows] [cols];
}
}
@casablanca的答案是完美的。 您最终需要创建“ Integer”类的对象
for(int j=0; j < arrayname[i].length; j++)
arrayname[i][j] = new Integer(int_value);
看一下这个SOq:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.