我试图从另一个数组中制作一组随机颜色。
String [] colors = new String[6];
colors[0] = "red";
colors[1] = "green";
colors[2] = "blue";
colors[3] = "yellow";
colors[4] = "purple";
colors[5] = "orange";
截至目前,这是我的阵列。我想制作一个 new 数组,只有4种颜色没有重复。
到目前为止,我知道如何制作一系列的randoms;但是,我不知道如何有效地处理重复。
答案 0 :(得分:2)
听起来你想要一套。 Set用于删除重复项。
Set<String> set = ...
for(String s : "a,b,c,d,e,f,d,e,c,a,b".split(","))
set.add(s);
这个集合将包含所有唯一的字符串。
答案 1 :(得分:2)
List<String> colourList = new ArrayList<String>(Arrays.asList(colors));
Collections.shuffle(colourList);
return colourList.subList(0,4).toArray();
答案 2 :(得分:0)
我强烈建议您不要使用数组。将您需要的内容添加到Set中,它将为您处理重复管理。如果需要,您始终可以转换回数组。
答案 3 :(得分:0)
您只需从colors
中选择随机条目,然后将其添加到Set
中,直到该集合包含四个元素:
Set<String> randomStrings = new HashSet<String>();
Random random = new Random();
while( randomStrings.size() < 4) {
int index = random.nextInt( colors.length);
randomStrings.add( colors[index]);
}
您可以在this demo中进行试用,在运行时随意选择四种颜色。您将得到类似于:
的输出Random colors: [orange, red, purple, blue]