Vediamo se ho capito:

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;}
    
   
    public String toString(){
        return name+" "+score+"p";
    }

//questo non ho ben capito a che serve

    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;
    }
}
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>();
    }
    
   //restituisce TRUE se la squadra viene caricata correttamente

 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;         
    }
    
//come sopra con la rimozione-ma a che serve un'eventuale rimozione?

    public boolean remove(String name) {
        if(!map.containsKey(name)) {
            return false;
        }
        Squadra s = map.remove(name);
        squadre.remove(s);
        return true;
    }
 
//carica il punteggio della squadra corrispondente

    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;
    }
    

//questo che fa di preciso?

    public String toString(){
        Collections.sort(squadre);
        String result = "";
        for(Squadra s : squadre) {
            if(!result.equals("")) result += "\n";
            result += s.toString();
        }
        return result;
    }    
}
Poi creo 4 istanze (o almeno, n istanze quante sono le squadre date in input)..dopodchè arrivo a digitare in input i vari risultati;alchè (prendo ad esempio la squadra Brazil), faccio un opportuno parsing delle seguenti:

Brazil#2@1#Scotland
Brazil#3@0#Morocco
Brazil#1@2#Norway

e faccio una cosa del genere:

addPoint(Brazil, 3);
addPoint(Brazil, 3);
addPoint(Brazil, 0);

Stessa cosa con le altre squadre;poi le facio stampare in ordine (ma con quale dei metodi che hai scritto?)
Però non ho capito una cosaerchè i vari metodi addPoint, remove, add, restituiscono un booleano?cioè, in realtà mi dicono solo se è andato tutto a buon fine giusto?

ciao, grazie mille della pazienza intanto