Qualcosa tipo
ecodice: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; } }
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; } }

Rispondi quotando