private static List<List<Integer>> copy(List<List<Integer>> grid, int rows, int columns) {
    List<List<Integer> > newGrid = new ArrayList<List<Integer>>();
    for(int i = 0; i < rows; i++) {
        newGrid.add(new ArrayList<Integer>());
        for(int j = 0; j< columns; j++) {
            newGrid.get(i).add(grid.get(i).get(j));     
        }
    }
    return newGrid;
}
I made this method to copy a list of list. Is there a better way?
 
     
    