46 lines
1.1 KiB
Java
46 lines
1.1 KiB
Java
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.PriorityQueue;
|
|
|
|
class Leaderboard {
|
|
private Map<User, Integer> scores = new HashMap<>();
|
|
private PriorityQueue<User> displayList = new PriorityQueue<>(
|
|
(u1, u2) -> u2.getScore() - u1.getScore());
|
|
|
|
public void addUser(User a) {
|
|
scores.put(a, a.getScore());
|
|
|
|
}
|
|
|
|
static Leaderboard obj = new Leaderboard();
|
|
|
|
private Leaderboard() {
|
|
}
|
|
|
|
public static Leaderboard getObject() {
|
|
return obj;
|
|
}
|
|
|
|
public void updateScore(User user, int points) {
|
|
int p = user.getScore();
|
|
p += points;
|
|
user.setScore(p);
|
|
scores.put(user, p);
|
|
}
|
|
|
|
public void display() {
|
|
displayList.clear();
|
|
System.out.println();
|
|
System.out.println("Leaderboard");
|
|
System.out.println("--------------------------------");
|
|
for (User u : scores.keySet()) {
|
|
displayList.add(u);
|
|
}
|
|
while (!displayList.isEmpty()) {
|
|
User u = displayList.poll();
|
|
System.out.println(u.getUsername() + " --- " + scores.get(u));
|
|
}
|
|
|
|
}
|
|
}
|