gpt4 book ai didi

java - 从数组列表中随机选择唯一的项目

转载 作者:行者123 更新时间:2023-12-01 12:47:18 25 4
gpt4 key购买 nike

假设我想从数组列表中随机选择 5 种颜色,如下所示:

static final List<Color> colors = new ArrayList<Color>();

static {
colors.add(Color.RED);
colors.add(Color.BLUE);
colors.add(Color.GREEN);
}

这很简单,我就可以做到这一点......

static Random random = new Random();

public static Color getRandomColor() {
return colors.get(random.nextInt(colors.size());
}

但是如果我想选择不同的独特颜色怎么办?那么假设我选择了红色,我怎样才能确保不再选择红色呢?最好也不将其从列表中删除。

编辑:

我发现了一些有用的东西:

Color generatedColor = Theme.randomColor();
for (int i = 0; i < pie.segments.size(); i++) {
if (generatedColor == pie.segments.get(i).getColor()) {
generatedColor = Theme.randomColor();
return;
}
}
this.color = generatedColor;

但是有人建议我将它们全部删除并在生成完它们后重新添加,我应该采用哪种方法?

编辑2:

经过洗牌后,我得到了这个: /image/dSnvP.png

谢谢! :)

最佳答案

使用remove方法,返回该位置的对象,然后将其删除。

list.remove(int i)

那么你的方法就变成了:

public static Color getRandomColor() {
return colors.remove(random.nextInt(colors.size());
}

当列表大小为0时,重新插入所有颜色。

关于java - 从数组列表中随机选择唯一的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24574804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com