2016-07-01 9 views
-1

können sagen, ich habe eine Karte als Map<String, String> data = new HashMap<String, String>();alphanumerischen Tasten einer Karte sortieren Need

Ich habe Schlüssel dieser Karte

{benefits7,benefits11,benefits1,benefits10,benefits15}; 

Und ich brauche es zu sortieren diese Tasten wie folgt folgende:

{benefits1,benefits7,benefits10,benefits11,benefits15} 

Kann jemand bitte helfen?

+2

http://stackoverflow.com/questions/922528/how-to-sort-map-values-by-key-in-java kann Ihnen helfen – Wilson

+0

@Kum Sie müssen ein wenig hier erarbeiten. Warum sollten Sie eine Karte verwenden und dann die Schlüssel sortieren? Hast du stattdessen eine Baumkarte verwendet? – Amal

Antwort

0

Kannst du nicht SortedMap anstelle von HashMap verwenden?

Auf diese Weise, wenn Sie über die Karte mit Hilfe von EntrySet oder KeySet iterieren, werden Ihre Werte nach dem Schlüssel sortiert.

standardmäßig verwenden, um die natürliche Ordnung für Ihre Schlüssel der Klasse (String in Ihrem Beispiel), und dieses Verhalten scheint genug für Ihre Anforderungen

Hier wird die SortedMap API

0

Können Sie das versuchen?

Map<String, String> data = new HashMap<String, String>(); 
Set<String> keys = data.keySet(); 
Set<String> sortedKeys = Collections.sort(keys); 
0

Sie können eine Liste verwenden, um die Schlüssel zu sortieren. Wenn Sie eine Bestellung in Ihrer Karte benötigen, sollten Sie keine HashMap verwenden, da die Reihenfolge nicht wichtig ist.

Verwenden Sie stattdessen eine verknüpfte Hash-Map. So konnten Sie eine geordnete Liste von Schlüsseln haben:

List<String> keys = new ArrayList<String>(data.keySet()); 
Collections.sort(keys); 

Wenn Sie nach der Karte iterieren auf die Reihenfolge der Schlüssel, dann eine java.util.LinkedHashMap verwenden, statt einer HashMap. Aber Sie müssten Elemente gemäß der expliziten Reihenfolge wie oben gezeigt platzieren.