package pr2.streams.reduce_critics; import java.util.List; import java.util.stream.Stream; /** * Spiele auflisten. */ public class MapReduceGames { /** * Hauptmethode. * * @param args Kommandozeilenargumente. */ public static void main(String[] args) { GameDatabase db = new GameDatabase(); List games = db.getGames(); // Abweichung des Metascores von dem Userscore // als quadratisches Mittel berechnen. Stream stream = games.stream(); double rms = stream.map(g -> g.getMetaScore() - g.getUserScore()) .map(g -> g * g) .reduce(0, (sum, value) -> sum + value); rms /= games.size(); rms = Math.sqrt(rms); // Abweichung als arithmetisches Mittel stream = games.stream(); double mittelwert = stream.map( g -> g.getMetaScore() - g.getUserScore()) .reduce(0, (sum, value) -> sum + value); mittelwert /= games.size(); System.out.printf("Abweichung Metascore: Durchschnitt=%.2f%n", mittelwert); System.out.printf("Abweichung Metascore: RMS=%.2f%n", rms); } }