randomly permutes all entries in an ArrayList - Java Collection Framework

Java examples for Collection Framework:ArrayList

Description

randomly permutes all entries in an ArrayList

Demo Code


//package com.java2s;
import java.util.ArrayList;

public class Main {
    /** /*from   ww  w.jav a  2  s  .  co  m*/
     * randomly permutes all entries in an ArrayList
     * 
     * @param arrayList the ArrayList that you want to shuffle
     */
    public static <T extends Comparable<? super T>> void shuffle(
            ArrayList<T> arrayList) {
        for (int i = 0; i < arrayList.size(); i++) {
            swap(arrayList, i, (int) (Math.random() * arrayList.size()));
        }
    }

    /**
     * swaps two entries of an ArrayList
     * 
     * @param arrayList  the ArrayList whose entries you want to swap
     * @param yin  the index of the first swapped entry
     * @param yang  the index of the other swapped entry
     */
    public static <T extends Comparable<? super T>> void swap(
            ArrayList<T> arrayList, int yin, int yang) {
        T qi = arrayList.get(yin);
        arrayList.set(yin, arrayList.get(yang));
        arrayList.set(yang, qi);
    }
}

Related Tutorials