Java 基于特殊约束洗牌arraylist?

Java 基于特殊约束洗牌arraylist?,java,arraylist,collections,shuffle,Java,Arraylist,Collections,Shuffle,我有一个字符串的ArrayList。此arraylist的长度是动态的(作为用户的输入)。如果用户输入N,则arraylist的大小为2N+2,可存储在此arraylist中的值限制为3个值(N个黑色、N个白色和2个空白)。我需要洗牌这个arraylist,根据种子值设置它的初始值。我知道 Collections.shuffle(yourList, new Random(somePredefinedSeed)); 可以用于洗牌Arraylist,但如何使用我刚才指定的约束进行洗牌。约束是什么

我有一个字符串的
ArrayList
。此arraylist的长度是动态的(作为用户的输入)。如果用户输入
N
,则arraylist的大小为
2N+2
,可存储在此arraylist中的值限制为3个值(N个黑色、N个白色和2个空白)。我需要洗牌这个arraylist,根据种子值设置它的初始值。我知道

Collections.shuffle(yourList, new Random(somePredefinedSeed)); 

可以用于洗牌Arraylist,但如何使用我刚才指定的约束进行洗牌。

约束是什么?如果它们只是那些可以进入列表的值,那么洗牌不会违反这些约束,您可以使用Collections.shuffle()。
Collections.shuffle
随机洗牌数组中已有的元素。如果您从N个黑色、N个白色和2个空白开始,并调用
Collections.shuffle
,您将始终以N个黑色、N个白色和2个空白结束。现在我要做的是,按特定顺序设置此arraylist,然后对其应用Collections.shuffle()。我正在检查是否有其他方法可以实现这一点。@phaedrusH
Collections.shuffle
几乎肯定是实现目标的最简单和最好的方法。@LouisWasserman好的。谢谢