說我要挑5種隨機顏色數組列表像這樣的採摘隨機的唯一項目:從一個ArrayList
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:
洗牌後,我得到這個: http://i.imgur.com/HPKQNFH.png
謝謝! :)
嘗試'Collections.shuffle(List)'並選取前N個顏色。 –
你想[Shuffle](http://www.tutorialspoint.com/java/util/collections_shuffle.htm)? –
我想過這個,但不是把它當成整個班級 - 我會放棄它。你怎麼看待'蠻力'呢?例如,我有一系列使用顏色的東西,如果它已被使用並且它是否重新生成,我會生成一個顏色檢查? – chapman