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 cosa
erchè 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