【问题标题】:How to get a Random Colour in an array in java如何在java中的数组中获取随机颜色
【发布时间】:2017-09-02 03:25:42
【问题描述】:

我正在创建一个程序,该程序会生成具有随机价格、年份、颜色等的随机汽车...我知道如何使用 Math.random 随机化年份,但我不确定如何获得随机颜色。我想制作一个充满颜色的数组并从数组中选择一个随机元素,但我不知道该怎么做。非常感谢任何帮助

【问题讨论】:

  • 你可以将你的颜色添加到一个数组列表中,然后简单地调用 Collections.shuffle 并选择新洗牌列表中的第一个。或者您可以生成一个介于 0 和列表长度之间的随机数 - 1 并使用该索引来获取颜色。
  • 所以如果你选择使用哪个索引号,你能做一个 Math.random 来选择索引号吗?还是不行

标签: java arrays random colors


【解决方案1】:

您可以使用Random 方法(import java.util.Random;)。这是一个随机制作公司的例子,你可以复制它的型号,颜色,价格等。

String[] Company = {"Honda", "Toyota", "Ford", "Chevrolet", "Lexus", "Jeep"}// add whatever companies you want here
Random rand = new Random();
int NumberOfAnswers = Company.length;
int pick = rand.nextInt(NumberOfAnswers);
String CompanyChoice = Company[pick];
System.out.println("The company of your car is " + CompanyChoice);

对模型、颜色或您想要的任何其他内容重复此操作。注意:Random rand = new Random();不需要重复,因为只需要声明一次。

【讨论】:

  • 如果您将其用于编号选项(例如年份或价格),请务必将您的数组更改为 int[] 而不是 String[]。
  • 能否在您的帖子中包含一些代码,这样我可以更轻松地为您提供帮助
  • 谢谢,这帮助很大。很好也很基本
【解决方案2】:

我认为最方便的方法是使用生成随机元素的方法制作枚举。这样我们就实现了封装和复用。

public enum Colour {
    Red,
    Orange,
    Green;

    private static final List<Colour> VALUES =
        Collections.unmodifiableList(Arrays.asList(values()));
    private static final Random RANDOM = new Random();

    public static Colour randomColour()  {
        return VALUES.get(RANDOM.nextInt(VALUES.size()));
    }
}

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 2015-04-09
    • 2013-02-03
    • 2017-03-10
    • 2011-05-13
    • 2012-08-24
    • 1970-01-01
    • 2018-09-20
    相关资源
    最近更新 更多