Mischiare una lista in Java può essere fatto in una linea di codice, grazie al metodo:

static void shuffle(List<?> list)

della classe java.util.Collections.
Il metodo accetta un oggetto di una classe che implementa l’interfaccia List.

Nell’esempio che segue, prendiamo l’array dei valori passati da linea di comando, li trasformiamo in una List, per darla in pasto al costruttore della classe Vector. Essendo la classe Vector una classe che implementa l’interfaccia List, possiamo applicare il metodo shuffle visto in precedenza:

import java.util.Collections;
import java.util.Arrays;
import java.util.Vector;
import java.util.Iterator;

public class ShuffleList
{
	public static void main(String[] args)
	{
		Vector<String> vector = new Vector<String>(Arrays.asList(args));
		Collections.shuffle(vector);
		Iterator<String> iter = vector.iterator();
		while(iter.hasNext())
		{
			System.out.println(iter.next());
		}
	}
}

Output:

anto@anto-desktop:~/Desktop/java$ javac ShuffleList.java
anto@anto-desktop:~/Desktop/java$ java ShuffleList 1 2 3 4 5
5
1
4
3
2