来自字符串的Java数组名称
下面的代码有一个run方法,它接受一个columnNumber。 我有3个不同的数组:col1、col2和col3在顶部初始化,每个数组中有4个元素 假设在run方法中,我传入一个int值2。所以,我希望“s[0]=500”是“col2[0]=500” 那么,有没有办法通过传递一个整数值来指定我想要的int数组 e、 例如,我输入3,然后“s[0]=500”将是“col3[0]=500” 您不能(轻松地)动态引用变量名。这里您可能需要一个数组:来自字符串的Java数组名称,java,arrays,Java,Arrays,下面的代码有一个run方法,它接受一个columnNumber。 我有3个不同的数组:col1、col2和col3在顶部初始化,每个数组中有4个元素 假设在run方法中,我传入一个int值2。所以,我希望“s[0]=500”是“col2[0]=500” 那么,有没有办法通过传递一个整数值来指定我想要的int数组 e、 例如,我输入3,然后“s[0]=500”将是“col3[0]=500” 您不能(轻松地)动态引用变量名。这里您可能需要一个数组: static int[][] cols = {
static int[][] cols = {
{1, 2, 3, 4},
{1, 2, 3, 4},
{1, 2, 3, 4}
};
public static void run(int columnNumber) {
cols[columnNumber - 1][0] = 500;
}
我使用了columnNumber-1
,因为数组索引是基于0的。因此,如果调用run(1)
,它将修改cols
(cols[0]
)中的第一个数组
static int[][] columns = {
{ 1, 2, 3, 4 },
{ 1, 2, 3, 4 },
{ 1, 2, 3, 4 },
{ 1, 2, 3, 4 }
};
public static void run(int columnNumber) {
columns[columnNumber][0] = 500;
}
我建议您可以使用switch语句
switch(columnNumber){
case 1:
col1[0]=500;
break;
case 2:
col2[0]=500 ;
break;
case 3:
col3[0]=500;
break;
}
run()方法应将int[]数组作为参数,而不是列号。因此,您可以将希望该方法修改的数组传递给它。
switch(columnNumber){
case 1:
col1[0]=500;
break;
case 2:
col2[0]=500 ;
break;
case 3:
col3[0]=500;
break;
}