Qualcosa tipo
codice:
public class Squadra implements Comparable<Squadra>{
    private String name;
    private int score;
    
    public Squadra(String name) {
        this.name = name;
        score= 0;
    }
    
    public String getName() {return name;}
    public int getScore() {return score;}
    public void setScore(int score) {this.score=score;}
    
    //Si mette il vincolo che ogni squadra abbia nome univoco.
    public int hashCode() {return name.hashCode();}
    public boolean equals(Object obj) {
        if(obj instanceof Squadra)
            return ((Squadra)obj).getName().equals(name);
        return false;
    }
    public String toString(){
        return name+" "+score+"p";
    }
    public int compareTo(Squadra s) {
        if(name.equals(s.getName()))
            return 0;
        int result = score-s.getScore();
        if(result==0)
            result = name.compareTo(s.getName());
        return result;
    }
}
e
codice:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;


public class Classifica {
    public HashMap<String, Squadra> map;
    public ArrayList<Squadra> squadre;
    
    public Classifica() {
        map  = new HashMap<String, Squadra>();
        squadre = new ArrayList<Squadra>();
    }
    
    public boolean add(String name) {
        if(map.containsKey(name)) {
            return false;
        }
        Squadra s = new Squadra(name);
        map.put(name, s);
        squadre.add(s);  
        return true;         
    }
    
    public boolean remove(String name) {
        if(!map.containsKey(name)) {
            return false;
        }
        Squadra s = map.remove(name);
        squadre.remove(s);
        return true;
    }
    
    public boolean addPoint(String name, int point) {
        if(!map.containsKey(name)) {
            return false;
        }
        Squadra s = map.get(name);
        s.setScore(s.getScore()+point);
        return true;
    }
    
    public String toString(){
        Collections.sort(squadre);
        String result = "";
        for(Squadra s : squadre) {
            if(!result.equals("")) result += "\n";
            result += s.toString();
        }
        return result;
    }    
}