ich eine Set
wie unten haben:einen Satz mit Map.Entry Sortieren von Werten
Set<Map.Entry<String,String>> set = new HashSet<>();
Wie kann ich das Set
sortieren basierend auf der Tonart Map.Entry
.
Danke.
ich eine Set
wie unten haben:einen Satz mit Map.Entry Sortieren von Werten
Set<Map.Entry<String,String>> set = new HashSet<>();
Wie kann ich das Set
sortieren basierend auf der Tonart Map.Entry
.
Danke.
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.
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());
}
Die Zeile "collections.sort" löst einen Kompilierzeitfehler aus. Bin nicht in der Lage es herauszufinden. – user3164187