2016-12-18 5 views
0

ich bin ein Problem mit meinem treemap mitTreeMap Überschreibungswerte

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


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

ich versuche, den Wert zu sortieren so etwas wie dieses

Player: 
    PlayerName1: 83 
    PlayerName2: 5 

i dies die Partitur zu erhalten benutzen Sie:

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

aber wenn einer der Spieler die gleiche Anzahl von Punkten hat, gibt die Karte diesen zurück:

PlayerName1 : 83 
    PlayerName1 : 83 

Vielen Dank für Hilfe :)

+0

'Versuchen Sie, den Wert zu sortieren', wie? – EJP

+0

Collections.sort (Werte, Collections.reverseOrder()); – ctrl

+0

Also poste das in deiner Frage. – EJP

Antwort

0

Warum Sie keine Player-Klasse? Du könntest eine List<Player> haben, die Duplikate erlauben würde und immer noch nach Punkten sortiert werden kann.

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

Dann:

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