package com.shekhargulati.tadm.ch04.excercises;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public class Problem4_1 {
public static List<List<Player>> teams(List<Player> players) {
List<Player> sorted = players.stream().sorted((p1, p2) -> p1.rating - p2.rating).collect(Collectors.toList());
int totalPlayers = players.size();
return Arrays.asList(sorted.subList(0, totalPlayers / 2), sorted.subList(totalPlayers / 2, totalPlayers));
}
}
class Player {
String name;
int rating;
public Player(String name, int rating) {
this.name = name;
this.rating = rating;
}
@Override
public String toString() {
return "Player{" +
"name='" + name + '\'' +
", rating=" + rating +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Player player = (Player) o;
return rating == player.rating &&
Objects.equals(name, player.name);
}
@Override
public int hashCode() {
return Objects.hash(name, rating);
}
}