Он не сортируется должным образом, на самом деле он вообще не сортируется, и я не знаю, почему
это класс Comparator:
public class Komparator implements Comparator<BoardGame> {
@Override
public int compare(BoardGame o1, BoardGame o2) {
System.out.println(o1.rating+"-"+o2.rating);
return (int) (o2.rating-o1.rating);
}
}
это основная часть
List<BoardGame> games = Arrays.asList(
new BoardGame("Terraforming Mars", 8.38, new BigDecimal("123.49"), 1, 5),
new BoardGame("Codenames", 7.82, new BigDecimal("64.95"), 2, 8),
new BoardGame("Puerto Rico", 8.07, new BigDecimal("149.99"), 2, 5),
new BoardGame("Terra Mystica", 8.26, new BigDecimal("252.99"), 2, 5),
new BoardGame("Scythe", 8.3, new BigDecimal("314.95"), 1, 5),
new BoardGame("Power Grid", 7.92, new BigDecimal("145"), 2, 6),
new BoardGame("7 Wonders Duel", 8.15, new BigDecimal("109.95"), 2, 2),
new BoardGame("Dominion: Intrigue", 7.77, new BigDecimal("159.95"), 2, 4),
new BoardGame("Patchwork", 7.77, new BigDecimal("75"), 2, 2),
new BoardGame("The Castles of Burgundy", 8.12, new BigDecimal("129.95"), 2, 4)
);
games.stream().filter(g->g.name.contains("a")).
sorted(new Komparator()).
map(g->g.name).forEach(System.out::println);