【问题标题】:Select random Java variable? Is this possible选择随机Java变量?这可能吗
【发布时间】:2012-02-27 18:21:17
【问题描述】:

假设我有以下设置:

private String one = "abc";
private String two = "def";
private String three = "ghi";

等等

我想编写一个返回随机变量的方法,这是我在类顶部声明的众多变量之一。有没有简单的方法可以做到这一点?

【问题讨论】:

    标签: java variables random


    【解决方案1】:

    两种选择:

    1. (更复杂)使用反射获取类中的变量,并随机选择一个。
    2. (更简单)将它们放在一个数组中,并选择随机索引。

    【讨论】:

      【解决方案2】:

      这个简单的方法怎么样?或者,如果元素太多,请使用 Collection

      public String getRandomString(){
              Random r = new Random();
      
              int i = r.nextInt()%3;
      
              switch (i) {
                  case 0:
                      return one;
                  case 1:
                      return two;
                  case 2:
                      return three;
                  default:
                      break;
              }
      
          }
      

      【讨论】:

        【解决方案3】:

        您可以将它们放入一个列表并通过访问具有随机数的列表元素来选择一个随机列表元素(您当然必须检查随机数是否在列表索引的范围内)。

        如果您需要实际的示例代码,请对此发表评论;-)

        你需要的有趣的函数是math.random()

        【讨论】:

          【解决方案4】:

          最简单和最方便的方法是使用数组而不是变量,然后获取一个随机整数,然后使用该数组的索引。

          【讨论】:

            【解决方案5】:

            您可以将它们全部放在一个列表中,然后在零和列表大小之间选择一个随机数,然后从列表中选择该元素。

            【讨论】:

              【解决方案6】:

              将变量放入数组或列表中,并使用随机数生成器在该集合中选择一个随机元素。

              【讨论】:

                【解决方案7】:

                我认为接受的解决方案可能会返回负值

                Java docs nextInt()

                • 所以你可能想使用Math.Abs()
                • 或使用r.nextInt(3)

                java docs nextInt(n)

                Related Question

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-08-29
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-10-08
                  • 2020-04-06
                  • 1970-01-01
                  相关资源
                  最近更新 更多