Added a form of pickRandom that accepts a Random object.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3732 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -166,6 +166,18 @@ public class RandomUtil
|
|||||||
* @return a randomly selected item.
|
* @return a randomly selected item.
|
||||||
*/
|
*/
|
||||||
public static Object pickRandom (List values, Object skip)
|
public static Object pickRandom (List values, Object skip)
|
||||||
|
{
|
||||||
|
return pickRandom(values, skip, rand);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Picks a random object from the supplied List. The specified skip
|
||||||
|
* object will be skipped when selecting a random value. The skipped
|
||||||
|
* object must exist exactly once in the List.
|
||||||
|
*
|
||||||
|
* @return a randomly selected item.
|
||||||
|
*/
|
||||||
|
public static Object pickRandom (List values, Object skip, Random r)
|
||||||
{
|
{
|
||||||
int size = values.size();
|
int size = values.size();
|
||||||
if (size < 2) {
|
if (size < 2) {
|
||||||
@@ -173,7 +185,7 @@ public class RandomUtil
|
|||||||
"Must have at least two elements [size=" + size + "]");
|
"Must have at least two elements [size=" + size + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
int pick = getInt(size - 1);
|
int pick = r.nextInt(size - 1);
|
||||||
for (int ii = 0; ii < size; ii++) {
|
for (int ii = 0; ii < size; ii++) {
|
||||||
Object val = values.get(ii);
|
Object val = values.get(ii);
|
||||||
if ((val != skip) && (pick-- == 0)) {
|
if ((val != skip) && (pick-- == 0)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user