2016-06-02 15 views

Antwort

3

Wie von Tim vorgeschlagen, verwenden Sie TreeMap für diesen Zweck. Aber anstatt Ihre eigene Comparator Umsetzung definieren, können Sie einfach Ihre instanziiert TreeSet wie diese, die Comparator mit bereits definiert in der Map.Entry Klasse:

Set<Map.Entry<String, String>> set = new TreeSet<>(Map.Entry.comparingByKey()); 

Dies sollte Ihnen jetzt geben eine schön Set bestellt.

2

Sie können ein normales Java Set nicht sortieren, da es nicht bestellt ist. Wenn Sie eine geordnete Menge wünschen, ist eine Option TreeSet zu verwenden. Sie können eine TreeSet mit einem benutzerdefinierten Komparator erstellen, und fügen Sie dann Ihre HashSet es:

TreeSet<Map.Entry<String,String>> ts 
    = new TreeSet<Map.Entry<String,String>>(new Comparator<Map.Entry<String,String>>() { 
    @Override 
    public int compare(Map.Entry<String,String> entry1, Map.Entry<String,String> entry2) { 
     return entry1.getKey().compareTo(entry2.getKey()); 
    } 
}); 

ts.addAll(set); 

Wenn Sie jetzt über den Satz wiederholen, werden Sie feststellen, dass sie von den Tasten der Map.Entry Elemente sortiert sind:

for (Map.Entry<String, String> entry : ts) { 
    System.out.println(entry.getKey()); 
} 
+0

Die Zeile "collections.sort" löst einen Kompilierzeitfehler aus. Bin nicht in der Lage es herauszufinden. – user3164187

Verwandte Themen