import java.util.Random; /*********************** * @author gTowell * Created: August 28, 2019 * Modified: Jan 24, 2019 * Purpose: * Generic Methods ***********************/ public class GenericMethod { public static void main(String[] args) { Integer[] jj = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // NOTE AUTOBOXING!!! new GenericMethod().randomize(jj); for (int j : jj) System.out.println(j); String[] ss = { "A", "B", "c", "d", "E", "F" }; new GenericMethod().randomize(ss); for (String s : ss) { System.out.println(s); } } /** * * The Fisher-Yates shuffle * This could really be a static method * @param data -- an array to be shuffled * The shuffle happens in place, so nothing is returned. * **/ public void randomize(T[] data) { Random r = new Random(); for (int i = data.length-1; i > 0; i--) { int tgt = r.nextInt(data.length); T temp = data[i]; data[i] = data[tgt]; data[tgt] = temp; } } }