1.shuffle()
问:使用random,如何将一个数组中的元素打乱?
答:可参考Collections.shuffle()算法。思想为:通过随机数取下标,与指定位置的元素互换。
简化后的参考代码见下:
public static void shuffle(List<?> list) { Random rnd=new Random(); for (int i=list.size(); i>1; i--) swap(list, i-1, rnd.nextInt(i)); } @SuppressWarnings({"rawtypes", "unchecked"}) public static void swap(List<?> list, int i, int j) { l.set(i, l.set(j, l.get(i))); }