Skip to main content

Posts

Showing posts from September, 2013

Shuffling a list in Java

I had a list of words which I wanted to shuffle in random order. When I tried swapping random elements of the list, I needed two random numbers and ensure they are not equal. Was taking a lot of time. But here is a better way private ArrayList shuffleWordList(ArrayList wrdList) { ArrayList lst = new ArrayList(); ArrayList tempList = (ArrayList) wrdList.clone(); int sz = wrdList.size(); for (int i = 0; i < sz; i++) { int listSize = tempList.size(); int n = random.nextInt(listSize); lst.add(tempList.get(n));//fill random word into new list tempList.remove(n);//remove selected word } return lst; } What we are doing here is,  Copy the list into a temporary list - tempList  Create another empty list- lst  Select one random word from temporary list  Add this word to new list  Remove the word from temporary list        Repeat the steps n number of times