I am processing elements of an ArrayList
in random order, generally by printing them out. I would like to detect when the randomly selected index is 0
or 1
so as to perform special handling for those cases, where the handling for index 0
is partially dependent on whether index 1
has previously been processed. Specifically, nothing is immediately printed when index 1
is processed, but if it is processed then when index 0
is subsequently processed, both the index 1
and the index 0
values are printed. In any event, the loop is exited after ten iterations or after processing index 0
, whichever comes first.
I tried to implement this using if
statements, but there where obvious flaws with that one. I have searched everywhere for any examples but found none. I have begun to consider using sorting algorithms or threads to hold the first value found then continue looping until it sees the second the print it out. I would appreciate any help possible.
Here is my code:
public static void random_sortType(){
types = new ArrayList<String>();
types.add("Start");
types.add("Starting");
types.add("Load");
types.add("Loading");
types.add("End");
ran = new Random();
int listSize = types.size();
String tempEventType;//the temp variable intended to hold temporary values
for(int i = 0; i < 10; i++){ //the loop goes round the ArrayList 10 times
int index = ran.nextInt(listSize);//this produces the random selection of the elements within the list
if(index == 0){
out.println(types.get(index));
out.println();
break;
}
if(index == 1){
tempEventType = types.get(index);
if(index == 0){
tempEventType = types.get(0) + " " + types.get(1);
out.println(tempEventType);
break;
}
}/*if(index == 0){
tempEventType = types.get(0) + " " + types.get(1);
out.println(tempEventType);
break;
}*/
//out.print("Index is " + index + ": ");
//out.println(types.get(index));
}
}
Aucun commentaire:
Enregistrer un commentaire