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