TreeMap覆盖值

时间:2016-12-18 22:59:51

标签: java

我的树形图有问题

Map<Integer, String> map = new TreeMap<Integer, String>();
    ArrayList<Integer> values = new ArrayList<Integer>();
    int value;


            map.put(value, uuid);
            values.add(value);

我尝试对值进行排序以获得类似的内容

Player:
  PlayerName1: 83
  PlayerName2: 5

我用它来得分:

System.out.println(map.get(values.get(0)) + " : " + values.get(0));

但如果其中一个玩家拥有相同的分数,则地图会返回此信息:

  PlayerName1 : 83
  PlayerName1 : 83

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

为什么你没有使用Player课程?您可以拥有一个允许重复的List<Player>,并且仍然可以按点排序。

class Player {
    private final String name;
    private int points;

    ....

    public int getPoints() {
        return points;
    }  

    @Override
    public String toString() {
        return String.format("%s: %d", name, points);
    }
}

然后:

List<Player> players = new ArrayList<>();
//... add players
players.sort(Comparator.comparing(Player::getPoints).reversed());

System.out.println("Players:");
players.stream().forEach(p -> System.out.println("\t" + p));