@SuppressWarnings("SpellCheckingInspection")
    private void printMostActiveActor(final List<Movie> movies) {
        // Java 7 style.
        final Map<Actor, Long> actorToMovieCount = new HashMap<>();
        for (final Movie movie : movies)
            for (final Actor actor : movie.getActors())
                actorToMovieCount.put(actor, 1 + (actorToMovieCount.containsKey(actor) ? actorToMovieCount.get(actor) : 0));
        long maximumMovieCount = 0;
        Actor mostProductiveActor = null;
        for (final Actor actor : actorToMovieCount.keySet())
            if (actorToMovieCount.get(actor) > maximumMovieCount) {
                maximumMovieCount = actorToMovieCount.get(actor);
                mostProductiveActor = actor;
            }
        System.out.println();
        if (mostProductiveActor != null)
            System.out.println("Java 7 - most productive actor: " + mostProductiveActor.getFullName()
                               + ", who worked on " + actorToMovieCount.get(mostProductiveActor) + " movies.");
        else
            System.out.println("Java 7 - most productive actor not found?!?");

        // Java 8 style.
        final Map.Entry<Actor, Long> actorAndCountEntry = movies.stream()
            .flatMap(movie -> movie.getActors().stream())
            .collect(Collectors.toMap(Function.identity(), actor -> 1L, (count1, count2) -> count1 + count2))
            .entrySet().stream()
            .max(Map.Entry.comparingByValue()).get();
        System.out.println("Java 8 - most productive actor: " + actorAndCountEntry.getKey().getFullName()
                           + ", who worked on " + actorAndCountEntry.getValue() + " movies.");
    }