数组的索引从0到其大小减1.由于i从list.size()开始,比最后一个元素的索引多1,并且在索引2处结束,因此需要从i减去1.另一种选择是
public static void shuffle(List> list, Random rnd) { for (int i = list.size() - 1; i > 0; i--) swap(list, i, rnd.nextInt(i+1)); }