If items fit into one array, you can use another boolean array that indicates which items were selected boolean [] selected
So, going through this array and printing only the element that was marked as selected, you can get the desired effect.
Edit: by decorating the returned object, we can even sort a subset of these random values
boolean [] selected; Object [] data;// the array of elements ReturnObject getRandom(){ int index = random(); selected[index] = true; return new ReturnObject(index,data[index]); } void printSelected(){ for(int i = 0; i < data.length; i++){ if(selected[i]){ print(data[i]); } } } void printSubset(ReturnObject[]set){ boolean []selected = .... for(int i = 0; i < set.length; i++){ selected[set[i].index] = true; } for(int i = 0; i < data.length; i++){ if(selected[i]){ print(data[i]); } } } class ReturnObject{//Class decorating the return object, which includes its index in the data array int index; Object data; }
source share