Re: DO WHILE

From:
"John B. Matthews" <nospam@nospam.invalid>
Newsgroups:
comp.lang.java.gui
Date:
Wed, 17 Mar 2010 21:40:51 -0400
Message-ID:
<nospam-33B39D.21405117032010@news.aioe.org>
In article <ymi39zypxtp.fsf@blackcat.isi.edu>,
tar@sevak.isi.edu (Thomas A. Russ) wrote:

dendeezen <tsd35328@scarlet.be> writes:

Iis there a better way to write :

int s ;
do {
// blablabla...
}while ( s!=MyArr[0];
s!=MyArr[1]
//etc, etc
);

Well, one way, as noted would be to not use primitive arrays but to use

Another somewhat clever method would be to do something like this:

final static int N_BALLS = 42;
final static int N_DRAWS = 6;

Random generator = new Random();
Collection<Integer> balls = new HashSet<Integer>(N_BALLS);
Collection<Integer> choices = new ArrayList<Integer>(N_DRAWS);

for (int i = 0; i < N_BALLS; i++) {
balls[i] = i+1;
}

int range = N_BALLS;
for (int j = 0; j < N_DRAWS; j++) {
choices[j] = balls[generator.nextInt(range--)];
balls.remove(choices[j]);
}

// Then you have the random results in choices.

Very appealing; I'm assuming Collection methods rather than array
accesses. Similarly:

private static final int N = 42;
private static final int K = 6;
....
List<Integer> balls = new ArrayList<Integer>(N);
for (int i = 0; i < N; i++) {