View Javadoc
1   package civitas.crypto.algorithms;
2   
3   import java.util.LinkedList;
4   import java.util.List;
5   
6   import org.springframework.beans.factory.annotation.Autowired;
7   import org.springframework.stereotype.Controller;
8   
9   @Controller
10  public class CreatePermutation {
11  
12  	@Autowired
13  	GenerateRandomInt generateRandomInt;
14  
15  	public int[] apply(final int size) {
16  		List<Integer> l = new LinkedList<>();
17  		for (int i = 0; i < size; i++) {
18  			l.add(i);
19  		}
20  
21  		// now select and remove elements at random from the list.
22  		int[] perm = new int[size];
23  		for (int i = 0; i < size; i++) {
24  			int j = generateRandomInt.apply(l.size());
25  			perm[i] = l.remove(j);
26  		}
27  
28  		return perm;
29  	}
30  }