public <T> void shuffle(List<T> list) {
int size = list.size();
Random random = new Random();
for(int i = 0; i < size; i++) {
int randomPos = random.nextInt(size);
T temp = list.get(i);
list.set(i, list.get(randomPos));
list.set(randomPos, temp);
}
}
Collections.swap实现
public <T> void shuffle(List<T> list) {
int size = list.size();
Random random = new Random();
for(int i = 0; i < size; i++) {
int randomPos = random.nextInt(size);
Collections.swap(list, i, randomPos);
}
}