【问题标题】:using an entry in a string array as a name for making a new array Java使用字符串数组中的条目作为创建新数组 Java 的名称
【发布时间】:2015-02-21 10:07:25
【问题描述】:

我的问题是,如果我有一个像

这样的数组
String [] varNames=new String[numOfVariables];
for(int i=0;i<numOfVariables;i++){
        varNames[i]=scan.next();

    }

我想创建一个新的整数数组,它的条目名称位于 varNames[1]。

例如,如果在 varNames[1] 的位置存储了“fish”,那么我想将 varNames[1] 处的名称分配给我要创建的新整数数组。

喜欢

int [] verNames[i]=new int[20];

但我不知道该怎么做......任何想法都会非常感激。 谢谢。

【问题讨论】:

  • 我认为他希望将 int 数组命名为“fish”。也许您应该为此使用 Map&lt;String, List&lt;Integer&gt;&gt; 之类的想法
  • 我只想将该 int 数组的名称用作“fish”.... 比如 int [] fish=new int[20];
  • 您正在寻找Map&lt;String,T&gt;
  • 为什么需要它?您希望如何使用它?

标签: java arrays


【解决方案1】:

您正在寻找Map&lt;String,T&gt; - 其中T 是您的变量类型。

这是“要走的路”,因为 java 不是dynamic binding 语言,所有变量名(和类型)都必须在编译时知道。

【讨论】:

    【解决方案2】:

    Java 不支持动态变量,它们必须在源代码中声明(严格类型)。

    您可以使用地图来获得接近您想要做的事情,请访问Map API。

    【讨论】:

      【解决方案3】:
      int [] verNames[i]=new int[20];
      

      没有。那是不可能的。变量名不应该是动态的。它们是严格类型的。

      【讨论】:

        【解决方案4】:

        根据您的问题:

        int [] verNames[i]=new int[20];
        

        这是不可能的。您不能在运行时创建变量。

        【讨论】:

          【解决方案5】:

          你不能动态地给变量名。此外,您甚至需要在程序编译之前声明变量名。

          但是,如果您愿意,可以这样做,将多个变量存储在集合中。

          Map<String, Integer> map = new HashMap<String, Integer>();
          for(int i = 0; i < 2; i++)
          {
            map.put("n1", i);
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-11-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-01-24
            • 2013-07-04
            相关资源
            最近更新 更多