code: public static String getMazeStringSolution(Maze2D maze, Collection<Point> explored, Collection<Point> path) {
          List<Map<Point, Character>> replacements = new ArrayList<Map<Point, Character>>();
          Map<Point, Character> replacement = new HashMap<Point, Character>();
          for (Point p : explored) {
              replacement.put(p, '.');
          }
          replacements.add(replacement);
          replacement = new HashMap<Point, Character>();
          for (Point p : path) {
              replacement.put(p, '*');
          }
          replacements.add(replacement);
          return maze.getReplacedMazeString(replacements);
      }
docs: Returns the maze passed as parameter but replacing some characters to print the path found in the
  current iteration.
  
  @param maze used to search
  @param explored collection of the points of the maze explored by the iterator
  @param path current path found by the iterator
  @return maze with the characters of the explored points and the current path replaced, to print the results in the console