2016-12-18 8 views
0

私は私はスコアを取得するためにこれを使用するこのTreeMapの上書き値

Player: 
    PlayerName1: 83 
    PlayerName2: 5 

ような何かを得るために、値をソートしてみてください私のツリーマップ

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


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

に問題抱えている:

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

ただし、プレーヤーの1人に同じ数のポイントがある場合、マップはこれを返します。

PlayerName1 : 83 
    PlayerName1 : 83 

助けてくれてありがとう:)

+0

どのように 'の値を並べ替えるようにしてください'? – EJP

+0

Collections.sort(values、Collections.reverseOrder()); – ctrl

+0

あなたの質問にそれを投稿してください。 – EJP

答えて

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