选择随机Java变量?这可能吗



假设我设置了以下内容:

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

等等。

我想写一个方法,返回一个随机变量,无论我在类的顶部声明了多少,它都是其中之一。有简单的方法吗?

两个选项:

  1. (更复杂的)使用反射来获取类中的变量,并随机选择一个
  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;
        }
    }

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

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

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

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

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

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

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

Java文档nextInt()

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

java文档nextInt(n)

相关问题

最新更新