¿Por qué Collections.binarySearch () no funciona con esto comparable?

tengo estoPlayer clase que implementa laComparable interfaz. Entonces tengo unArrayList dePlayers. Estoy tratando de usarbinarySearch() en la lista dePlayers para encontrar unoPlayer, pero Java me está dando un "cannot find symbol: method binarySearch(java.util.ArrayList< Player>,Player)".

Esta es la clase del jugador:

class Player implements Comparable {

    private String username;
    private String password;
    Statistics stats;

    //Constructor, creates a new Player with a supplied username
    Player(String name) {
        username = name;
        password = "";
        stats = new Statistics();
    }

    //Accessor method to return the username as a String
    String getName() {
        return username;
    }

    String getPassword() {
        return password;
    }

    void setPassword(String newPass) {
        password = newPass;
    }

    //Method to change the username
    void setName(String newName) {
        username = newName;
    }

    public int compareTo(Object o) {
        return username.compareTo(((Player)o).username);
    }
}

Cosa rara, cuando intento Collections.sort () en esta misma lista, funciona.

Respuestas a la pregunta(2)

Su respuesta a la pregunta