来自字符串的Java数组名称

来自字符串的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 = {

下面的代码有一个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 = {
    {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;  
}