forked from pr2-lecture/uebungen
42 lines
1.2 KiB
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);
|
|
}
|
|
}
|