You can do this kind of thing using some methods in the random package in [math]. See http://jakarta.apache.org/commons/math/api/org/apache/commons/math/random/RandomData.html#nextSample(java.util.Collection, int) for a way to sample from a collection. By using sample size = 1, you can select a single random element. You can iterate over a list in a random order by first generating a random permutation using http://jakarta.apache.org/commons/math/api/org/apache/commons/math/random/RandomData.html#nextPermutation(int, int) and then using the resulting int[] array to select elements. If random lists generated from collections are of interest, we could add a method to do this directly. You can post any ideas on improving / extending commons math here: http://wiki.apache.org/jakarta-commons/MathWishList Phil
-----Original Message----- From: Stephen Colebourne [mailto:[EMAIL PROTECTED] Sent: Thu 3/10/2005 4:54 PM To: Jakarta Commons Developers List Cc: Subject: Re: [Collections] Random iterator? We don't have such a method or iterator at present. I would like to keep [collections] for deterministic not random effects if possible. Stephen ----- Original Message ----- From: "Hernan Silberman" <[EMAIL PROTECTED]> > In my unit and load tests, I often find myself retrieving a collection of > objects from a service, and selecting a random one from the collection. > Seems > like a common use case (for testing anyhow) and I don't think there's any > support in java.util Collections for, say, fetching a random item out of a > Set. > It's easy enough to code by hand, but I was wondering if it's already done > somewhere in commons-collections. A Random iterator would be really cool. > > I suppose: > > List theList = new ArrayList( someCollection ); > Collections.shuffle( theList ); > Iterator theIt = theList.iterator(); > > works fine too.. > > thnx... > hernan --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]