uebungen/solutions/src/main/java/pr2/streams/reduce_critics/MapReduceGames.java

42 lines
1.2 KiB
Java

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<ComputerGame> games = db.getGames();
// Abweichung des Metascores von dem Userscore
// als quadratisches Mittel berechnen.
Stream<ComputerGame> 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);
}
}