public class Shift implements ShiftInterface { @Override public void shift(SwapStoreInterface ss) { for (int i = 0; i < ss.length(); i++) { ss.setShifts(i, circularShifts(ss.lineIndices(i))); } } private int[][] circularShifts(int[] indices) { int[][] result = new int[indices.length][indices.length]; for (int i = 0; i < indices.length; i++) { for (int j = 0; j < indices.length; j++) { result[i][j] = indices[(j+i)%indices.length]; } } return result; } }